簡體   English   中英

socket.io向房間發送消息不起作用

[英]socket.io emitting message to room does not work

套接字的事件綁定已移動到單獨的模塊:

exports.bind = function(socket) {
    socket.on('join', function(data) {
        socket.join(data.type);
    });
    socket.on('message', function(data) {
    global.io.sockets.in('rooma').emit('message', data);
    });
}

server.js:

var app = express();

//creating socket server
server = http.createServer(app);
io = global.io = require('socket.io').listen(server, {'log level': 3});

io.sockets.on('connection', function(socket) {
    //binding events on socket
    events.bind(socket, io);
});

問題是,該消息永遠不會在“ rooma”中發送給客戶端。 但是如果我將其全局發出:

global.io.sockets.emit('message', data);

有用。 哪里有問題? 我已經確定該客戶屬於房間。

當您從要向其發送消息的房間中初始化事件時,此方法將起作用:

exports.bind = function(socket) {
        socket.on('join', function(data) {
            socket.join(data.type);
        });
        socket.on('message', function(data) {
            socket.get('room', function (error, room) {
                io.sockets.in(room).emit('message', data);
            });
        });
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM