gpt4 book ai didi

javascript - 客户端浏览器的 Socket.IO 检测有时会失败

转载 作者:搜寻专家 更新时间:2023-11-01 00:12:07 25 4
gpt4 key购买 nike

我正在开发一个使用 Node.js 和 Socket.IO 的实时跟踪应用程序。在我的 tracking code在目标站点上运行 我有一些代码可以获取浏览器的用户代理字符串并将其发送回服务器。这通常工作正常,但有几次此数据设置为未定义(this is where it happens)。

目前,我在服务器上只有一个巨大的 try/catch block ,因此在运行我定义的用于检测它是什么浏览器的方法时它不会崩溃 (it crashes when it tries to run the match() method)。我假设这是从机器人或其他没有用户代理或已被篡改的浏览器发生的。我错了吗?还有其他原因吗?

Socket.IO 是否为浏览器检测提供了任何东西?无论哪种方式,我都知道我需要使浏览器检测功能更强大,但我只是让这个项目起步。

如果没有更好的方法来做到这一点,我是否最好只检查发送到服务器的数据是否未定义并将其视为“其他”浏览器?

enter image description here

看到总连接数和总浏览器数的差异了吗?目前,差异略高于 100。如果没有发生此浏览器跟踪问题,则数字应该完全相同(因为每个连接都会有浏览器、分辨率、操作系统和 URL)。

最佳答案

我对 socket.io 不是很熟悉,但看起来您可以在 socket.handshake.headers ( Socket.io's Wiki – Authorizing ) 中获取请求 header 。我不知道哪些浏览器运行 JavaScript 但没有设置 navigator.userAgent,但也许它们会发送 User-Agent HTTP header ?

关于javascript - 客户端浏览器的 Socket.IO 检测有时会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13406632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com