【发布时间】:2022-02-03 21:25:32
【问题描述】:
检测某人是否直接连接到我的套接字连接而不是浏览器的最可靠方法是什么?我知道我们可以绕过所有这些,但我意识到一些 WebSockets,如 tradingView 在直接从 socket.io-client 连接时返回 403,但在浏览器上工作正常。
它如何检测到它以及我如何为我自己的 socket.io 服务器实现它?
【问题讨论】:
标签: javascript node.js websocket socket.io
检测某人是否直接连接到我的套接字连接而不是浏览器的最可靠方法是什么?我知道我们可以绕过所有这些,但我意识到一些 WebSockets,如 tradingView 在直接从 socket.io-client 连接时返回 403,但在浏览器上工作正常。
它如何检测到它以及我如何为我自己的 socket.io 服务器实现它?
【问题讨论】:
标签: javascript node.js websocket 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
});
也许这会对你有所帮助。
【讨论】: