Socket.IO RedisStore和xhr-polling

时间:2012-05-15 03:00:10

标签: node.js xmlhttprequest redis socket.io

我在heroku上扩展我的Node.js应用程序时遇到问题。我正在使用RedisStore来保持我的套接字连接在节点进程之间保持不变。我正在扩展到2,3个进程。我在这里跟踪了这段代码https://gist.github.com/1391583。在一个进程中一切正常,但是当我向外扩展时,广播不会到达其他节点。但是,连接信息是持久的,并且我不会得到持续的握手错误和断开连接。

我的理解是socket.io RedisStore还在内部处理redis Pub / Sub以保持多个进程同步。正如这里提到的https://groups.google.com/forum/?fromgroups&hl=en#!topic/socket_io/gymBTlruYxs顺便说一句,我应用了#848 socket.io补丁,它似乎没有为我解决问题。

截至2012年5月14日,Heroku仅支持socket.io的xhr-polling传输,这正是我所使用的。那么长期民意调查只会出现这个问题吗?有解决办法吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

很抱歉,如果这完全无关紧要,但当我看到一个需要扩展性的问题时,我想到了Beseda - 我想到了{{3}} - 这是你应该研究的问题吗?

答案 1 :(得分:0)

我通过实现自己的Redis层解决了这个问题。我让部署在不同实例上的所有Node服务器都订阅了一个Redis中央服务器,并收听来自Redis而不是套接字的消息。它适用于websockets和xhr polling。