2017-05-04 26 views
0

我試圖播放一些信息到特定的房間:插槽IO不廣播到特定的房間

服務器端

var io = require('socket.io')(server, { path: '/my/path' }); 
server.listen(8090, function() { 
    console.log("Server ON."); 
}); 

io.on('connection', function(socket){ 
    socket.on('room', function(room) { //set the room 
     socket.join(room); 
     socket.room = room; 
    }); 
    socket.on('new message', function (data) { //receive and broadcast the msg 
     socket.broadcast.to(socket.room).emit('new message', data); 
    }); 
}); 

客戶端

//initial client config 
var socket = io(URL_SOCKET, {path: '/my/path'}); 
socket.emit('room', room_id); 
socket.on('new message', function (data) { 
    do_something(data); 
}); 

function on_change(data){ 
    socket.emit('new message', data); 
} 

這裏的問題是:socket.broadcast.to是broadcasti將客戶發送的信息(致電on_change)發送給所有房間(給所有人)。我究竟做錯了什麼?

+0

哈瓦看看https://github.com/socketio/socket.io/blob/master/docs/emit.md - 你可能想嘗試'socket.to(socket.room).emit'或' io.to(socket.room).emit' – mk12ok

回答

0

只是一個提示,我用socket.iobrowser sync,也使用它,我得到的衝突。因此,在測試套接字應用程序之前,請務必關閉虛幻模式。