1

私は nodejs (0.8.15) と socket.io (0.9) を使用しています。ルームと名前空間でチャットを作成しています。したがって、問題は次のとおりです。

1) ユーザーが部屋に入るたびに、この部屋のオンライン ユーザーのリストを表示する必要があります。wiki https://github.com/LearnBoost/socket.io/wiki/Roomsで、クライアントのソケット id のリストを取得できることを読みましたio.sockets.clients('room')が、ユーザーにはニックネームがあり、次のように保存します。

var io = io.listen(server);
var chat = io.of('/chat').on('connection', function (socket) {
{
  socket.on('user-entered-to-chat', function(nickname) {
    // how i store nickname
    socket.nickname = nickname;
    ...
    // i need do something here or above to make array of nicknames
    socket.emit('get-users-list`, array);
  }
});

Q: 各人のソケットにアクセスして、ニックネームなどの情報を取得するにはどうすればよいですか?

もちろん、ニックネームを socket.id とともにデータベースに保存することはできますが、この方法は避けたいと思います。

2) また、var nicknames=[];コードのどこかで宣言することもできますが、オンラインの 1 つの部屋に 500 人以上のユーザーがいる場合はどうすればよいでしょうか? 500以上で動作しますか?

私はすべてのユーザーにとって変数であると考えchat、すべてのニックネームを書き込もうとしましたvar chat.nicknames=[]が、うまくいきませんでした。にも機能しませんでしたio.sockets.nicknames = []。すべてのユーザーには独自のchat.

3)ソケットに関するすべての情報/データはどこに保存されますか? たとえば、ルーム内のクライアントのリスト。私のnodejsサーバー/コンピューターで?

ありがとうございました

4

0 に答える 0