我正在研究使用Node.js和Socket.IO的实时跟踪应用程序。在我的目标网站上的tracking code中,我有一些代码可以获取浏览器的用户代理字符串并将其发送回服务器。这USUALLY工作正常,但有几次该数据设置为undefined(this is where it happens)。客户端浏览器的Socket.IO检测有时会失败
现在,我只是在服务器上有一个巨大的try/catch块,因此在运行我定义的方法来检测它是什么浏览器时不会崩溃(it crashes when it tries to run the match() method)。我假设这是从机器人或其他没有用户代理或被篡改的浏览器发生的。我错了吗?还有其他原因吗?
Socket.IO提供任何浏览器检测?无论哪种方式,我知道我需要使浏览器检测功能更强大,但我只是把这个项目放在了地面上。
如果没有更好的方法来做到这一点,我最好只检查发送到服务器的数据是否是未定义的,并将其视为“其他”浏览器?
见连接总数和总人数的浏览器的区别?目前,有一点差距超过100.如果这个浏览器跟踪问题没有发生,数字应该完全相同(因为每个连接都会有浏览器,分辨率,操作系统和URL)。
对于任何感兴趣的用户来说,用户代理键是标题对象中的“用户代理”。 – franzlorenzon
我最终修改了服务器,以便从头文件获取更多信息,而不是通过跟踪代码发送。当我在高流量的网站上尝试时,非常有帮助并减少了带宽消耗! – Aaron