我有socket.io應用程序必須處理大量的命名空間。我想知道什麼是socket.io實例可以處理的命名空間的數量的限制,如果我創建像10k命名空間,是否有任何問題。我如何進行擴展,以便像在多個socket.io實例中一樣進行堆棧(例如,每個實例處理1k個namespance)。實際上,我可以擴展以支持多個用戶,但是我的所有實例都必須處理所有的名稱空間。Socket.io命名空間的限制和如何擴展它
UPDATE1:
我試圖解決的問題是下面,我有一個多人卡片遊戲(如撲克牌),每間客房,其中4名玩家在玩遊戲時,被socketio命名空間建模。由於我期待成千上萬的併發玩家,因此我的socketio實例應該處理這個數量的命名空間。 我已經實現了在Socket.io website中解釋的可伸縮性解決方案。當我擴展時,這個節點片段在新實例中運行,因此它可以處理之前創建的所有命名空間。
rooms.forEach(function(room){
var socketRoom = io.of('/room/' + room.id)
.on('connection', function(mySocket){
return handleTableSocket(mySocket, socketRoom, room);
});
});
那麼用socketio命名空間模擬每個遊戲房間是個好主意嗎?如果命名空間的數量增長了呢?
乾杯
@ hamou92 - 你有沒有任何理由將每個遊戲都建模爲一個「房間」而不是命名空間。我相信socket.io中的房間是一個比命名空間更輕的對象,我認爲一個房間仍然會爲您提供您想要的通信功能。 – jfriend00
我在做出選擇之前做了一些研究。它似乎像名稱空間給更多的分離http://stackoverflow.com/questions/10930286/socket-io-rooms-or-namespacing – hamou92
@ hamou92 - 這是否回答你的問題? – jfriend00