CNode

socket.io 多实例/多进程 不同进程用户之间不能相互通信

问答
Llik0914发布于11 年前最后回复11 年前0 回复5117 浏览0 收藏

部分代码 // connect Redis 多进程/多服务器 共享数据

var _sRCfg = require('./cfg').ShareRedisCfg,
    _redis = require(moduleAddr + 'redis').createClient,
    _pub = _redis(_sRCfg.port, _sRCfg.host),
    _sub = _redis(_sRCfg.port, _sRCfg.host, {
        detect_buffers: true
    }),
    _adapter = require(moduleAddr + 'socket.io-redis');
io.adapter(_adapter({
    // host: _sRCfg.host,
    // port: _sRCfg.port,
    pubClient: _pub,
    subClient: _sub
}));

一对一聊天代码

socketObj = io.sockets.connected[xxx]; // xxx socket.id 在redis存储
if (socketObj) {
	socketObj.emit(eventName, msg);
}
查看回复

回复 (0)

暂无回复,成为第一个参与讨论的人。
参与回复
登录后即可参与回复。登录