Hỏi về rooms trong socket io



  • Chào các bác,
    Hiện tại em đang mò mẩm socket io với ứng dụng chat, hiện tại đã chat được, nhưng em muốn tạo nhiều rooms. Vấn đề của em là làm sao client của room nào thì chỉ nhận được message từ server của room đó mà thôi. Mong các bác giúp đỡ cho em cái ví dụ về room trong socket io.
    Hiện tại thì message của room này thì room kia vẫn nhận đc và vẫn hiển thị.. :)

    Cám ơn các bác :D



  • @Nguyễn Xuân Bình : Trong document của socket.io có rất nhiều ví dụ, bạn có thể tham khảo thêm

    Server :

    var socket = require('socket.io')(80);
    
    var Room1  = socket.of('/room1');
    var Room2  = socket.of('/room2');
    
    var sameEvent = function(io,tag) {
     console.log('--a user conected to ' + tag + ' --');
     io.on('get message',function(msg){
       io.emit('get message',tag +msg);
     });
    
     io.on('disconnect', function () {
       console.log('--a user disconnected from '+tag);
     });
     return io;
    }
    
    Room1.on('connection', function (io) {
     io = sameEvent(io,'Room 1 >');
     io.on('private event', function (msg) {
       io.emit('private event',msg);
     });
    
    });
    Room2.on('connection', function (io) {
     io = sameEvent(io,'Room 2 > ');
    });
    
    

    Client:

    <script>
      var Room1 = io.connect('http://localhost/room1')
        , Room2 = io.connect('http://localhost/room2');
      
      Room1.on('get message', function (msg) {
         console.log(msg);
      });
    
      Room1.on('private event', function (msg) {
         console.log(msg);
      });
    
      Room2.on('get message', function () {
       console.log(msg);
      });
    </script>
    


  • Cám ơn bạn nhé


Log in to reply