我目前正在使用socket.io开发一个项目,我不确定完全理解重新连接的机制。
由于客户端可能发生断开连接,我想知道如何维护服务器上的套接字状态。我已经知道socket.io-client会尝试自动重新连接,但我想知道是否可以确保服务器端套接字的状态。
我正在考虑基于cookie的会话,例如快递,但我再次不确定我是否采取了良好的方式。我应该考虑另一个解决方案吗?
为了记录,我成功地使用基于cookie的粘性会话机制配置了HAProxy。是否可以将此机制与socket.io服务器上的cookie会话混合使用?
由于
威廉
答案 0 :(得分: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集成的简单方法。