将WebSocket与两个Web浏览器实例区分开

时间:2018-09-30 13:16:13

标签: javascript node.js google-chrome firefox websocket

我有一个Node js应用程序。它需要3个不同端口上的3个websocket服务器。在前端,三个websocket连接到每个端口

[Browser.WebSocketClient:500] <--> [NodeJs.WebSocketServer:500]
[Browser.WebSocketClient:501] <--> [NodeJs.WebSocketServer:501]
[Browser.WebSocketClient:502] <--> [NodeJs.WebSocketServer:502]

在前端,当应用程序加载时,将创建每个套接字并独立连接。在服务器端的某个时刻,我需要协调所有三个连接的客户端,以便管理员知道它们全部来自同一浏览器实例。使用IP地址,这将很容易,但是有可能打开第二个Web浏览器,并有3个以上的套接字连接,然后不断打开(而我需要使用它进行测试)。时间戳不够可靠,无法正常工作(假定同时打开了两个浏览器选项卡)。

我知道一种解决方案可能是在连接时通过websocket发送一个uuid,但这是从前端发送的,这意味着它很容易被欺骗(Javascript ftw)。

有没有办法将这三个套接字标识为来自同一浏览器实例?从本质上讲,它必须是可以用作uuid的内置内容。

0 个答案:

没有答案