2016-08-08 17 views
2

socket.ioに問題があります。 これは、複数の部屋に接続されている単一のソケット接続を作成しようとしています。(Socket.io)1つのソケット接続複数の部屋

これは私の現在のコードです:

function JoinRoom(id){ 
    socket = io(domain); 

  socket.on('connect', function (data) { 
     console.log('Connected to ' + room); 
     socket.emit('room', room); 
    }); 

    socket.on('message', function (data) { 
     console.log(data); 
    }); 
} 

問題は、私はVAR socket.io(ドメイン)機能を削除した場合に接続されていなかったし、部屋からデータを受信して​​いないということです。

例:私はJoinRoom()関数のsocket.io()関数を取る場合

socket = io(domain); 
function JoinRoom(id){ 

  socket.on('connect', function (data) { 
     console.log('Connected to ' + room); 
     socket.emit('room', room); 
    }); 

    socket.on('message', function (data) { 
     console.log(data); 
    }); 
} 

私は、メッセージのメッセージか何かを受信しません。それは動作しません。 私は何が間違っていますか?どんな解決策ですか?

答えて

0

クライアントで、アクセスルームを示すイベントを作成します。

サーバー上で、アクセスロジックを適用します。

クライアント

var socket = io('http://localhost'); 

function JoinRoom(data){ 
    socket.emit("join", data); 
} 

var data = { 
    room:'ejemplo' 
}; 

JoinRoom(data); 

サーバー

var io = require('socket.io')(app); 

io.on('connection', function(socket){ 
    socket.on('join', function(data){ 
     console.log(data); // data = { room: String, ...} 
     socket.join(data.room); 
    }); 

socket.on('leave', function(data){ 
    socket.leave(data.room); 
}); 
関連する問題