Socket.io事件只能在同一个进程中工作
我正在尝试使用socket.io&sticky-session将消息传递给我的客户端。
问题是,连接到其中一个进程的客户端不会从其他进程获取消息,而只能从他所连接的进程中获取消息。
我怎样才能使networking套接字跨所有进程工作?
Server.js:
var cluster = require('cluster'); var app = require('./config/express')(db); // Init the server to run according to server CPU's if (cluster.isMaster) { for (var i = 0; i < 4; i++) { cluster.fork(); } } else { app.listen(config.port, function () { console.log('Process ' + process.pid + ' is listening to all incoming requests'); }); }
Process.js:
var http = require('http'); var express = require('express'); var app = express(); var server = http.createServer(app); var io = require('socket.io').listen(server); var ns = io.of('/ns'); var sticky = require('sticky-session'); if (!sticky.listen(server, 8080)) { // Master code server.once('listening', function() { console.log('server started on 8080 port'); }); }
client.js:
var io = require('socket.io-client'); var serverUrl = 'http://localhost:8080/ns'; var conn = io.connect(serverUrl); conn.on('malware', function(infectedProcess){ console.log('infectedProcess: ' + infectedProcess); });
- 套接字挂起错误请求模块在nodejs尽pipeCURL正确
- 当服务器将事件发送到特定客户端时,不要使用Angular2来运行socket.io-client(不同的angular2服务)
- 如何在使用iojs创buildhttp请求时捕获EHOSTDOWN套接字错误?
- socket.io net :: ERR_CONNECTION_TIMED_OUT错误
- Node.js集群模块不释放http.Server.close()上的套接字/端口
- 使用redisbuild立与socket.io和NodeJs的实时聊天
- 仅为模型的所有者广播消息
- ASP.NET中的Socket.IO服务器替代
- socket.io路由器,分配给多个实例之一