快递与“连接,Redis的”会话存储
而且I tied it with Socket.IO through configuring "authorization"
所以我就不说了必须实际使用
socket.get
或
socket.set
存储和检索客户端的所有变量。
但我不确定如果我将消息广播给特定的人群,连接到不同的服务器,则可以成功地获取消息。
所以它是真正的缩放!
但它似乎不是真正缩放但只能使用Redis作为单独的存储值。
RedisStore
这是由Socket.IO
给出不起作用。
跟它
DEBUG: TypeError: Converting circular structure to JSON
at Redis.stringify [as pack] (native)
at Redis.publish (/var/www/node_modules/socket.io/lib/stores/redis.js:106:31)
at Manager.handleClient (/var/www/node_modules/socket.io/lib/manager.js:646:18)
at Manager.handleHTTPRequest (/var/www/node_modules/socket.io/lib/manager.js:595:8)
at Manager.handleRequest (/var/www/node_modules/socket.io/lib/manager.js:557:12)
at HTTPServer.<anonymous> (/var/www/node_modules/socket.io/lib/manager.js:112:10)
at HTTPServer.emit (events.js:70:17)
at HTTPParser.onIncoming (http.js:1507:12)
at HTTPParser.onHeadersComplete (http.js:102:31)
at Socket.ondata (http.js:1403:22)
我如何可以扩展Socket.IO与广播到所有的客户比例可用?
编辑:我跟着the Express-Session-Socket.IO tutorial,我发现, io.authorization实际上使问题,但它是好没有io.authorization。 那是怎么回事?
您能否澄清您想要广播的特定用户群?例如,这些用户是同一个频道的用户(socket.join())还是连接到同一个网址(即/ chat/1或/ chat/2)的用户? – mtsr 2012-01-31 08:22:02
@mtsr所有用户使用相同的命名空间或相同的频道,但使用不同的服务器(缩放) – InspiredJW 2012-01-31 09:27:47
命名空间可以通过简单地将这些用户路由到同一台服务器来完成。由于频道在建立连接后连接起来会更加困难。 – mtsr 2012-02-01 09:31:32