Socket.io multiroom:得到错误socket.in不是一个函数

时间:2015-10-25 12:39:48

标签: socket.io

尝试使用socket.io创建多房间。在客户端(Jade):

script(type='text/javascript').
    var socket = io();

    function test(){
        socket.emit('join', '#{user._id}');
        socket.in('#{user._id}').emit('chat message', 'test sent');

        socket.on('chat message', function(msg){
            $('#messages').append($('<li>').text(msg));
        });
    }

在服务器端:

io.on('connection', function (socket) {
    socket.on('chat message', function (msg) {
        io.emit('chat message', msg);
    });

    socket.on('join', function (_id) {
        socket.join(_id);
        console.log('Joined room: ' + _id);
    });

    socket.on('loc', function (position) {
        console.log('pos: ' + position);
    });
});

当脚本在浏览器中运行时,它会导致&#39; socket.in不是函数&#39;。

1 个答案:

答案 0 :(得分:0)

对于我来说,socket.io文档中并不清楚,但是,很快: 客户端仅使用socket.emit('new message', 'to room name', 'I am new message')发送。房间之间的所有路由都在服务器上进行,如下所示:io.on('new message', function(room, data) { io.sockets.in(room).emit('new msg to client', data)...

Thanx到文章here