2

我目前正在使用 socket.io 进行一个项目,我不确定是否完全理解重新连接的机制。

由于断开连接可能发生在客户端,我想知道如何维护服务器上套接字的状态。我已经知道 socket.io-client 会尝试自动重新连接,但我想知道是否可以确保服务器端套接字的状态。

我正在考虑一个基于 cookie 的会话,例如 express,但我再次不确定我是否采取了好的方法。我应该考虑另一种解决方案吗?

作为记录,我成功地使用基于 cookie 的粘性会话机制配置了 HAProxy。是否可以将此机制与 socket.io 服务器上的 cookie 会话混合使用?

谢谢

威廉

4

1 回答 1

0

我认为基于 cookie 的会话是您的最佳选择。查看session.socket.io模块。看起来它是专门为此而建造的。

var SessionSockets = require('session.socket.io');
var sessionSockets = new SessionSockets(io, sessionStore, cookieParser);

sessionSockets.on('connection', function (err, socket, session) {

  //your regular socket.io code goes here 
  //and you can still use your io object

  session.foo = 'bar';
  //at this point the value is not yet saved into the session 

  session.save();
  //now you can read session.foo from your express routes or connect middlewares

});

或者,您可以使用您提到的express自己实施会话。我不知道与 HAProxy 集成的任何简单方法。

于 2015-03-25T02:01:53.283 回答