有很多方法可以做到這一點。我會把你鏈接到this guide on using redis as a pub sub,但我會給你一個超級簡短的介紹它的樣子。
所以產卵兩個集羣在啓動時,或然而,許多你想..
var aWorker = cluster.fork();
var bWorker = cluster.fork();
,那麼你需要將其設置爲監聽它們各自的端口,所以使用net模塊:
var server1 = require('net').createServer([options], function(connection) {
aWorker.send('ConnectionEvent' , connection);
}).listen(80); //HTTP/WS
var server2 = require('net').createServer([options], function(connection) {
bWorker.send('ConnectionEvent' , connection);
}).listen(443); //HTTPS/WSS
集羣中的過程:
var app_server = require('express')().listen(0, 'localhost');
var io = require('socket.io')(app_server);
io.adapter(require('socket.io-redis')({ host: '127.0.0.1', port: **REDIS PORT** });
io.on('connection', function (socket) {
//Rest of your io server code
...
process.on('message' , function(message, connection) {
if(connection && message === 'ConnectionEvent') {
app_server.emit('connection', connection);
connection.resume();
}
}
相信Socket.io的房間功能交流會在第二點上完成你想要做的事情,而不是依靠創建新的工作任務。這只是我的看法。