我目前使用socket.io-emitter发出消息从我的应用程序中的工作人员发出消息(在命名空间中),但是现在我需要向所有连接的套接字(到名称空间)广播,当发生某些事情时,是否有任何消息在那附近工作?
例如,这是一个socket.io公开(HTTP)使用socket.io适配器发出和广播 能够在不同的进程中运行不同的socket.io实例
var io = require('socket.io')(http);
io.adapter(redis(config.redis));
io.of('/namespace').on('connection', function(socket){
socket.emit('message', 'Hi you!');
socket.broadcast.emit('broadcast', 'Heya all!');
});
现在这是一个向客户端发送事件的不同进程(MQ工作者)
var io = require('socket.io-emitter')(redis(config.redis));
var socket = io.of('/namespace');
socket.emit('message', 'Hi you!'); // This works
socket.broadcast('broadcast', 'Heya all!'); // This won't work
答案 0 :(得分:2)
它没有这种方式。
使用客户端 - 发射器,您只能发出,然后服务器处理他想对此事件做的事情。
服务器端:
socket.on('msg', function (msg) {
socket.broadcast.emit('msg', msg);
});
客户端:
socket.emit('msg', 'msg');