快遞與「連接,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