(Socket.io)一个插座连接多个房间

时间:2016-08-08 12:26:36

标签: javascript sockets socket.io

我遇到socket.io问题。 我尝试创建一个单个套接字连接,它连接到多个房间。

这是我目前的代码:

function JoinRoom(id){
   socket = io(domain);

   socket.on('connect', function (data) {
        console.log('Connected to ' + room);
        socket.emit('room', room);
   });

   socket.on('message', function (data) {
        console.log(data);
   });
}

问题是如果我删除var socket.io(域)功能未连接且不从房间接收数据。

示例:

socket = io(domain);
function JoinRoom(id){

   socket.on('connect', function (data) {
        console.log('Connected to ' + room);
        socket.emit('room', room);
   });

   socket.on('message', function (data) {
        console.log(data);
   });
}

如果我使用JoinRoom()函数的socket.io()函数,我不会收到消息消息或任何东西。这是行不通的。 我究竟做错了什么?任何解决方案?

1 个答案:

答案 0 :(得分:1)

在客户端上,创建一个事件以指示访问空间。

在服务器上,应用访问逻辑。

客户端

var socket = io('http://localhost');

function JoinRoom(data){
    socket.emit("join", data);
}

var data = {
    room:'ejemplo'
};

JoinRoom(data);

服务器

var io = require('socket.io')(app);

io.on('connection', function(socket){
    socket.on('join', function(data){
        console.log(data); // data = { room: String, ...}
        socket.join(data.room);  
    });

socket.on('leave', function(data){
    socket.leave(data.room); 
});