客户不handshaken客户端应该重新连接,socket.io集群
问题描述:
我用快递,Redis的,蒙戈和socket.io的Node.js应用的工作方式prefectly。 今天,当我介绍集群,我发现它的工作原理,但应用程序有很多消息,客户不handshaken客户端应该重新连接,socket.io集群
'client not handshaken' 'client should reconnect'
很多时候从socket.io的响应时间是非常糟糕的,高达几秒钟。
然后我用HTTP代理前结束,从浏览器的请求。 Chrome浏览器间歇性地工作而不会丢弃这些消息。有时如果我再次打开相同的URL,它会开始抛出这些消息,并且响应延迟。火狐的行为方式也是一样的。随机地,它开始不断扔这些消息.. 看起来像集群环境中的websocket的一些问题。
我的node.js版本是0.6.10,socket.io 0.9.0,2.5.9表示,HTTP代理0.8.0
答
这是最有可能是因为Socket.IO在内存中保存你的连接,所以每台服务器都有自己的一套客户端。要在多个服务器实例上共享Socket.IO,请使用它们的RedisStore
进行查看。 Express会话也是如此,您可以选择connect-redis
作为选项。
这里是[另一个解决方案](https://github.com/fent/socket.io-clusterhub)如果你不想设置redis数据库。 – fent 2012-03-08 13:49:29
谢谢。我怀疑这是问题所在。我只是看着socket.io-clusterhub。似乎是一个不错的方法。感谢那。将尝试此..再次感谢。 – user644745 2012-03-08 14:11:35
像魅力一样工作。谢谢。 – user644745 2012-03-08 14:19:53