繁体   English   中英

socket.io - 如何检查客户端是否已从浏览器连接

[英]socket.io - How to check if the client has connected from browser

检测某人是否直接连接到我的套接字连接而不是浏览器的最可靠方法是什么? 我知道我们可以绕过所有这些,但我意识到一些 WebSockets,比如 tradingView 在直接从socket.io-client连接时返回 403,但在浏览器上工作正常。

它是如何检测到的,我该如何为我自己的 socket.io 服务器实现它?

我不确定如何获取客户端连接的设备/浏览器/应用程序,但我设法使用 socket.io 的握手查询来做类似的事情。 我需要区分管理员和客户端,所以在我的客户端我使用了这个代码:

 const socket = io({ query: { isAdmin: true, name: "GetSub Admin" }, // path: '/websockets', resource: '/websockets' });

在服务器端我使用

 if (client.handshake.query.isAdmin == 'true') { admins.push({ id: client.id, name: client.handshake.query.name }); } else { users.push({ id: client.id, name: client.handshake.query.name });

也许这会对你有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM