0

現在のユーザーリストを表示する必要があるチャットアプリケーションを作成するためにsocket.ioを使用しています。今までは、現在のユーザーリストが表示されていても問題なく動作しています

私はユーザーリストを維持するためにこのコードを使用しています

usernames[socket.id] = name;//where name is the name of the user

次に、切断時に、そのユーザーをリストから再度削除します

delete usernames[socket.id];

しかし、この方法に関する私の問題は、a、b、cの3人のユーザーがいると仮定することです。

これで、ユーザーリストが接続イベントに入力されます。

 io.sockets.on('connection', function(socket) { 

    ...

    socket.on('register', function(name) {

    usernames[socket.id] = name;

また、ユーザーリストは「a、b、c」のようになります。

しかし、私が欲しいのは、ユーザー「a」の場合、リストに「bとc」が表示され、「b」の場合は「aとc」、「c」の場合は「aとb」である必要があります。

また、それを表示しているユーザーの名前を格納する変数に基づいてクライアント側で削除することも考えましたが、このチャットでは、複数のユーザーが同じ名前を持つことができます。したがって、3つすべての名前が「a」であるとすると、リストから1つの名前だけを削除するのではなく、3つすべてを削除します。

....私はこれについての考えが不足していると思います。Plzはsocket.ioに実装するのに役立ちます

4

1 に答える 1

1

あなたの質問はSocket.IOとは実際には何の関係もありません。ユーザーのリストを表示するときは、単に現在のユーザーを表示しないでください。

for (userIndex in users) {
    if (users[userIndex].id !== currentUser.id) {
        // Add user to displayed user list
    }
}
于 2012-11-24T20:00:40.710 に答える