私はJavaScriptとexpressjsのwsパッケージを使用してサーバーを構築しています。
私はポートフォリオ用のチャット アプリケーションを構築しています。当初の私のアイデアは、ユーザーがどのチャット (サブスクリプション) に参加しているかをクライアントからサーバーに伝え、それを subscriptions
配列に保存することでした。
これは私が望むアプローチですが、接続されているすべてのクライアントにメッセージが送信されるため、残念です。
サブスクリプション オブジェクトは、ユーザーが参加しているチャットの ID を含む単なる配列です。
チャットでクライアントにのみメッセージを送信するにはどうすればよいですか?
P粉1987499292023-09-19 11:34:05
まず、各クライアントを、サブスクライブしているチャット ID にマップするメソッドを維持する必要があります。これは、JavaScript の Map
を使用して行うことができます。ここで、キーはクライアント オブジェクト、値は購読しているチャット ID の配列です。
リーリー
リーリー
ここで、特定のチャットでクライアントに送信する必要があるメッセージを受信したら、接続されているクライアントを反復処理し、関連するチャット ID に登録しているクライアントにのみメッセージを送信します。 リーリー