0
想象一下web套接字服務器。當我收到連接時,我需要將該連接保存在它所屬的池中(將池視爲「同級」的「空間」)。這是需要的,因爲我需要向同一個池中的對等點廣播內容。當代碼是 - 當然 - 所有異步,即使節點是單線程的,似乎維護一個全局數組是不可靠的(我不知道這是怎麼可能的,儘管...):在壓力測試,消息以非常快的速度流向服務器,我將連接保存在結構中,但通常下一條消息沒有找到更新的結構(仍然?),行爲不正常。如何在nodejs中可靠地維護一個連接的套接字數組?
應用程序使用Redis的,但插座不能序列...
通信基於WebSockets的,通過SockJS(我用Socket.io在以前的迭代)。
我確定這是一個衆所周知的已經解決的問題,但我仍然沒有看到光明:我在這裏錯過了什麼?
我的會話對象或多或少是這樣的(不僅僅是一個僞代碼......它比這更復雜)。
var Sessions = {
sockets: {},
add: function(poolId, socket) {
sockets[poolId].push(socket);
},
find: function(poolId) {
return sockets[poolId];
},
remove: function ...
}