2016-08-16 3 views
0

私はプライベートチャットアプリケーションを作成していますが、興味や行動に基づいてルームに特定のソケットを追加したいと思っています。ユーザーはいつでも部屋にいてほしいです。socketioはソケットが接続されたときに常にルームを作成しますか?

ここで私の質問は、新しいソケットが接続されるたびに自動的に部屋を作りますか、それとも私のコードのために起こりますか?

var allSockets = []; // Adding all new sockets in an array 

console.log(allSockets.length); // checking length of an array after socket connection 

app.get('/api/rooms',function(req,res){ 
    res.send(io.sockets.adapter.rooms); // just a url to see the rooms connected 
}) 

上記のコードの一例であり、以下に2人のユーザーが接続されます出力の一例である

{"/#DtUmoNBKeQSYMcepAAAA":{"sockets":{"/#DtUmoNBKeQSYMcepAAAA":true},"length":1},"/#1FXDSOViOj2R64DjAAAB":{"sockets":{"/#1FXDSOViOj2R64DjAAAB":true},"length":1},"57b2ba38426f18d1040a6d5f":{"sockets":{"/#1FXDSOViOj2R64DjAAAB":true,"/#DtUmoNBKeQSYMcepAAAA":true},"length":2}} 
私は2人のユーザーが同様に新しいを自分の部屋を持っていること以上の結果で見ることができます

彼らが一緒にいるところで作られた部屋。 3部屋合計です。

もしあれば、socketioが作成するデフォルトルームを取り除く方法はありますか?

+0

'ソケット 'はプログラミングレベルでは' socket.io'関連ではありません...タグを削除しました。詳細については、[tag:sockets]タグの詳細を参照してください。 – Myst

答えて

1

新しいソケットが接続されるか、コードのために発生すると、socket.ioは自動的に部屋を作成しますか?

はい、新しく接続されたソケットのid値に基づいて部屋が自動的に作成され、そのソケットがその部屋に追加されます。その部屋には他のソケットは置かれていません。これはsocket.ioがそれ自身のハウスキーピングの一部として行うものです。あなたのコードのためではありません。

ほとんどの場合、その部屋を無視できます。それはいくつかの列挙からそれをフィルタリングしようとしているならば、ユニークな接頭辞を持っています。

もしあれば、socketioが作成するデフォルトルームを取り除く方法はありますか?

これはわかりません。そしてそうすることで、いくつかのsocket.io内部が混乱するかもしれません。

+0

迅速な回答ありがとうございます。 – sarabs3

関連する問題