socket.io:将浏览器和计算机与连接相关联

我正在用socket.io库在node.js中编写一个游戏。 它有一个服务器2个客户端连接和播放。 我的游戏工作正常,但有一个问题。

如果已连接的客户端连接到游戏,则将其视为第三个连接请求,这会造成混乱。

当客户端浏览器未closures时,通常会重新启动节点服务器。 我可以解决这个问题。

你可以使用cookies。 有这样的模块: Socket.IO身份validation

但是你也可以手动完成,因为它是一个简单的cookie:
当用户连接时,在开始游戏之前添加一个步骤来识别用户。 这一步应该创build一个cookie或使用现有的cookie并将其发送到服务器进行authentication。

这并不难,你可以用javascript读写cookie,并且向服务器发送string/数字也不是问题( websocket.emit('auth',whatever) )。

基于这个例子,看起来像使用cookie来识别socket.io中的会话是可能的,但是使用查询string值来识别特定的浏览器或计算机可能会更好:

https://www.exratione.com/2013/05/the-use-of-cookies-versus-query-string-tokens-to-identify-sessions-in-socketio/