Я работаю над приложением отслеживания в реальном времени, которое использует Node.js и Socket.IO. В моем tracking code, который идет на целевом сайте, у меня есть код, который захватывает строку пользовательского агента браузера и отправляет его обратно на сервер. Это УСПОЛЬЗУЕТСЯ нормально, но есть несколько раз, когда для этих данных задано значение undefined (this is where it happens).Socket.IO обнаружение браузера клиента иногда сбой
На данный момент у меня просто огромный блок try/catch на сервере, поэтому он не сбой при запуске метода, который я определил, чтобы определить, какой браузер он (it crashes when it tries to run the match() method). Я предполагаю, что это происходит либо из ботов, либо из какого-либо другого браузера, у которого нет пользовательского агента или его подделали. Неужели я ошибаюсь? Есть ли другие причины?
Предоставляет ли Socket.IO что-либо для обнаружения браузера? В любом случае, я знаю, что мне нужно сделать функцию обнаружения браузера более надежной, но я просто получаю этот проект от земли.
Если нет лучшего способа сделать это, мне лучше просто проверить, не были ли данные, отправленные на сервер, неопределенными и считать его «другим» браузером?
Чувствуете разницу в общих соединений и общего числа браузера? На данный момент разница составляет немногим более 100. Если эта проблема с отслеживанием браузера не происходила, цифры должны быть точно такими же (потому что КАЖДОЕ соединение будет иметь браузер, разрешение, операционную систему и URL-адрес).
Для любого заинтересованного пользователя ключ агента пользователя является «user-agent» в объекте заголовков. – franzlorenzon
Я в конечном итоге модифицировал сервер, чтобы получить больше информации из заголовков, а не отправлять его из моего кода отслеживания. Очень полезное и уменьшенное потребление полосы пропускания, когда я пытался его на сайте с высоким трафиком! – Aaron