WebSocket メッセージを条件付きで送信するにはどうすればよいですか?
P粉933003350
P粉933003350 2023-09-18 14:56:33
0
1
676

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

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

リーリー

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

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

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

P粉933003350
P粉933003350

全員に返信(1)
P粉198749929

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

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

リーリー

ここで、特定のチャットでクライアントに送信する必要があるメッセージを受信したら、接続されているクライアントを反復処理し、関連するチャット ID に登録しているクライアントにのみメッセージを送信します。 リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート