検索

ホームページ  >  に質問  >  本文

WebSocket メッセージを条件付きで送信するにはどうすればよいですか?

私はJavaScriptとexpressjsのwsパッケージを使用してサーバーを構築しています。

私はポートフォリオ用のチャット アプリケーションを構築しています。当初の私のアイデアは、ユーザーがどのチャット (サブスクリプション) に参加しているかをクライアントからサーバーに伝え、それを subscriptions 配列に保存することでした。

リーリー

これは私が望むアプローチですが、接続されているすべてのクライアントにメッセージが送信されるため、残念です。

サブスクリプション オブジェクトは、ユーザーが参加しているチャットの ID を含む単なる配列です。

チャットでクライアントにのみメッセージを送信するにはどうすればよいですか?

P粉933003350P粉933003350493日前696

全員に返信(1)返信します

  • P粉198749929

    P粉1987499292023-09-19 11:34:05

    まず、各クライアントを、サブスクライブしているチャット ID にマップするメソッドを維持する必要があります。これは、JavaScript の Map を使用して行うことができます。ここで、キーはクライアント オブジェクト、値は購読しているチャット ID の配列です。 リーリー

    クライアントが WebSocket に接続するとき、そのサブスクリプション情報を subscriptionsMap に保存します。クライアントが切断するときは、必ずマップからサブスクリプションを削除してください:

    リーリー

    ここで、特定のチャットでクライアントに送信する必要があるメッセージを受信したら、接続されているクライアントを反復処理し、関連するチャット ID に登録しているクライアントにのみメッセージを送信します。 リーリー

    返事
    0
  • キャンセル返事