2016-11-01 9 views
0

私のプロジェクトでは、各ユーザーが自分の一意のチャンネルに参加しています(私はそのユーザーがsocked idチャンネルにもいることを知っています)。サーバー側ではsocket io固有のチャンネル - 部屋を指定しないで放します

クライアント

var socket = io('http://localhost:8000/'); 
var room = "unique_id"; 

socket.on('connect', function() { 
    socket.emit('room', room); 
}); 

socket.on("unique_id", function() { 
    console.log("test"); 
}) 

私は、ユーザーが接続されている部屋をチェックしています:今、私は象を使用しています接続

{ 'DQOt2DX2IsHh-m9nAAAC': { sockets: { 'DQOt2DX2IsHh-m9nAAAC': true }, length: 1 }, 
'unique_id': { sockets: { 'DQOt2DX2IsHh-m9nAAAC': true }, length: 1 } } 

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

io.on('connection', function(socket) { 
    var room; 

    socket.on('room', function(unique_id) { 
     socket.join(unique_id); 
     room = unique_id; 
     console.log(io.sockets.adapter.rooms); //show the unique_id room 
     io.to(room).emit('hello', 'msg'); 
    }); 

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

}); 

出力。次のようにクライアントに送信するio:

$client = new Client(new Version1X('http://localhost:8000')); 
$client->initialize(); 
$client->emit('unique_id', ['news' => 'bar']); 
$client->close(); 

私のサーバー側に何か問題があると思いますが、解決できません。私はunique_idのイベントを処理する必要がありますが、どのように処理する必要がありますか?

答えて

0

サーバ側

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

io.on('connection', function(socket) { 
    var room; 

    socket.on('room', function(address) { 
     socket.join(address); 
     room = address; 
     console.log(io.sockets.adapter.rooms); 
     io.to(room).emit('hello', 'msg'); 
    }); 

    socket.on('message', function(data) { 
     console.log(data.unique_id); 
     io.to(data.unique_id).emit('hello', 'msg'); 
    }) 

}); 

elephant.io

$client->emit('message', ['unique_id' => 'foo']); 

これは私のために働いている私の解決策です。

関連する問題