Node.js を使用してサーバーを構築しています。ユーザーを表すオブジェクトを連想配列に保存します。現在、これらのオブジェクトのインデックスは、その接続のソケット ID です。Socket.io ライブラリを使用して、socket.id を実行するだけで取得できるため、リクエストを処理する各ハンドラーについて、どのユーザーがリクエストを行ったかを常に知ることができます。
クライアント側のすべてのユーザーは、接続されたユーザーの ID (ソケット ID とは異なります) を持っています。ユーザーから別のユーザーにメッセージを送信するために使用されるハンドラーがある場合、問題が発生します。例を示します。
ユーザー A はユーザー B にメッセージを送信する必要があります。私のプロトコルでは、メッセージを次のように指定します。
MSG_KEY:{MSG:'hello world',USER_ID:'12345'}
サーバー側には「MSG_KEY」をリッスンするハンドラーがあり、メッセージが送信されるとそれが実行され、socket.idを使用してリクエストを行った人を取得できますが、問題はユーザーBも取得する必要があることですが、今回は彼の USER_ID を使用します。セッションのなりすましを避けるために socket.id を使用したくありません。
最初に、socket.id とユーザー ID の両方からユーザーにインデックスを付けることで、配列内でユーザーにインデックスを付けることを考えました。
私の質問は次のとおりです。これを行うのは良い考えですか? socket.io はこれを簡素化する方法を提供していますか?