现在有一个问题,我要做A到B和B到A一对一的长连接通讯,使用net模块创建了服务器,又使用cluster做负载,现在不知道如何在进程间共享socket,想到了redis存储连接,但是在序列化socket的时候报错,请问有谁做过类似的功能啊??
9 回复
JSON.parse 中 function是不能被共享的。 单进程对应单SOCKET即可。跨进程分享SOCKET是画蛇添足吧?
如果一定要实现进程间通信 process模块和child_process模块你去看一看
process.on('message', function(m) {
console.log('CHILD got message:', m);
});
process.send({ foo: 'bar' });
@BrotherPeng 知道你的意思了。socketio也不支持CLUSTER多核。
但是我有解决思路。
process模块 A的进程向主线程抛出一个任务类似 {do:’send’,user:’B’,info:’balabala’} 所有线程收到这个事件,检索自己的连接池内是否存在用户B,存在则该连接池调动SEND方法,发送INFO数据。