【问题标题】:socket.io - How to check if the client has connected from browsersocket.io - 如何检查客户端是否已从浏览器连接
【发布时间】:2022-02-03 21:25:32
【问题描述】:

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

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

【问题讨论】:

    标签: javascript node.js websocket socket.io


    【解决方案1】:

    我不确定如何获取与客户端连接的设备/浏览器/应用程序,但我设法使用 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
                });

    也许这会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-08-04
      • 2018-06-11
      • 2013-07-27
      • 1970-01-01
      • 2022-06-27
      • 2012-11-12
      • 2019-09-06
      • 2011-04-21
      • 1970-01-01
      相关资源
      最近更新 更多