我是新来的节点和套接字io。我正试图为我自己的应用程序实现一个实时通知系统。因此,使用节点,快递和插座IO,代码如下:socket.io发射到所有房间,而不是指定的
服务器端代码:
io.on('connection', function (socket) {
socket.on('subscribe', function(room) {
socket.join(room);
});
socket.on('unsubscribe', function(room) {
socket.leave(room);
});
});
客户端代码:
var sio = io.connect('http://localhost:9000');
var ch1 = sio.emit('subscribe', 'channel1');
ch1.on('log', function (data) {
console.log('channel1: ', data);
});
var ch2 = sio.emit('subscribe', 'channel2');
ch2.on('log', function (data) {
console.log('channel2: ', data);
});
我射击/发射事件例如从路线(快递):
app.get('/', function(req, res) {
var data1 = {
channel: 'channel1',
evennt: 'log',
message: 'Hello from channel1...'
};
io.to(data1.channel).emit(data1.event, data1);
});
当我打的路线,该io.to(data1.channel).emit(data1.event, data1);
是工作荷兰国际集团,但它的数据发送到两个房间/通道,但我期待仅在ch1
因为data1.channel
包含channel1
所以我期待下面的处理程序将接收到的数据来获取数据:
ch1.on('log', function (data) {
console.log('channel1: ', data);
});
注意,两个通道有同样的log
事件。我在正确的轨道上吗?它有可能吗?
您在data1'的'声明拼写错误'channel'。 – robertklep
这是一个错字,但它也不起作用。 –