Node.js 套接字io-管理多个房间?
使用node.js和socket.io管理多个文件室时遇到问题Node.js 套接字io-管理多个房间?,node.js,sockets,websocket,socket.io,Node.js,Sockets,Websocket,Socket.io,使用node.js和socket.io管理多个文件室时遇到问题 socket.on('join_room', function (data) { socket.join(data); }); socket.on('send_msg', function (data) { io.sockets.in(theroom).emit('message', data); }); 如果我将房间设置为一个变量(即theroom),那么很自然地,最新的房间就不会写了,我怎么能有多个房间呢?我通
socket.on('join_room', function (data) {
socket.join(data);
});
socket.on('send_msg', function (data) {
io.sockets.in(theroom).emit('message', data);
});
如果我将房间设置为一个变量(即
theroom
),那么很自然地,最新的房间就不会写了,我怎么能有多个房间呢?我通过编写一个函数来解决这个问题,该函数发送到房间:
listen: (server, callback) =>
@server = server
@logger.debug 'SDL: starting up socket'
# @socketTool is object returned by socket io require
@listener = @socketTool.listen(server, log: true, 'log level': @logLevel )
emitToRoom: (room, type, data, callback) =>
@logger.debug "all rooms: #{@utilLib.inspect @listener.sockets.manager.rooms}"
@listener.sockets.in(room).emit(type, data)
callback() if callback?
我认为您缺少的是单个套接字不理解其他房间,您需要在侦听器级别处理它 发布代码,在那里声明和设置room这里有一个我写的关于多房间聊天的教程:谢谢,伙计们,我现在就这么做了:我只是不明白房间是如何管理的,在链接中,它们存储在socket.room中,但这是如何管理的,它如何记住每个用户属于哪个房间,在房间被更改后,等等