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

时间:2013-11-20 23:03:20

标签: node.js sockets socket.io

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

如果已连接的客户端再次连接到游戏,则会将其视为第三个连接请求,这会使事情变得混乱。

当客户端浏览器未关闭时重新启动节点服务器时,通常会发生这种情况。我能解决这个问题。

2 个答案:

答案 0 :(得分:1)

您可以使用Cookie。有以下模块:Socket.IO Authentication

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

这并不困难,您可以使用javascript读写Cookie,并且向服务器发送字符串/数字也不是问题(websocket.emit('auth',whatever))。

答案 1 :(得分:0)

基于此示例,看起来它的可能使用cookie来识别socket.io中的会话,但您可能最好使用查询字符串值来标识特定的浏览器或计算机:< / p>

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