2
我受此啓發:http://socket.io/docs/using-multiple-nodes/#passing-events-between-nodes,現在我想通過redis adpter同步兩個socket.io實例。socket.io - 在節點之間傳遞事件
這是我的代碼:
//FIRST SERVER (server1.js)
var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
var test = 0;
io.on('connection', function (socket) {
test+=1;
console.log("connection. test = " + test);
});
//SECOND SERVER (server2.js)
var io = require('socket.io')(4000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
var test = 0;
io.on('connection', function (socket) {
test+=1;
console.log("connection. test = " + test);
});
當我連接到server1.js(3000端口) - 我看「連接。測試= 1',這很好,但第二臺服務器的控制檯仍然乾淨。我想第二臺服務器(端口4000)做同樣的事情(打印'連接= 1')。
我在做什麼錯了?你能告訴我一個例子如何使用適配器?
感謝
聽起來沒錯。有兩件事要嘗試。嘗試將數據附加到套接字。 ex socket.username ='ted'。如果這樣做不起作用,您可以隨時安裝redis pub/sub併爲節點創建適配器(如通信通道),以便共享非socket.io消息。 – Eddie 2015-07-17 19:39:14
我有兩個相同的服務器,我在bot服務器和客戶端使用[email protected]。在我的代碼中添加一個時間來打印連接的套接字總數。我在一臺服務器上得到了正確的號碼,但是在另一臺服務器上,我得到的只是0.以下是我用於計數檢查的內容。 Object.keys(io.sockets.connected)。長度) – 2016-08-02 07:04:05