2013-03-10 40 views
0

遇到問題管理與node.js的多個房間和socket.io插座io - 管理多個房間?

socket.on('join_room', function (data) { 
    socket.join(data); 
}); 

socket.on('send_msg', function (data) { 
    io.sockets.in(theroom).emit('message', data); 
}); 

如果我設置一個變量房間(即theroom),那麼自然是得到了與最新的房間寫的,我怎麼能有多個房間?

+1

發佈代碼,在這裏你聲明和設置房間 – user568109 2013-03-11 11:53:08

+0

這裏是我寫的關於多房間聊天的教程:http://udidu.blogspot.co.il/2012/11/chat-evolution-nodejs-and-socketio .html – udidu 2013-03-11 15:25:02

+0

感謝球員,即時通訊現在:http://psitsmike.com/2011/10/node-js-and-socket-io-multiroom-chat-tutorial/ 我只是不明白如何管理房間,在鏈接後,它們存儲在socket.room中,但它如何管理,它如何記住每個用戶屬於哪個房間,在房間更改後等等 – Neo 2013-03-11 22:27:35

回答

0

我解決了這個通過編寫發送到房間的功能:

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? 

我認爲你缺少的東西是個人插座不明白其他的房間,你需要處理,在聽衆級別。