我是新來的節點和套接字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
這是一個錯字,但它也不起作用。 –