[解決済み] socket.ioで特定のクライアントにメッセージを送信する方法
2022-09-20 16:04:46
質問
私はsocket.io + node.jsで始めています、私はローカルにメッセージを送信する方法とブロードキャストする方法を知っています。
socket.broadcast.emit()
機能:-接続されているすべてのクライアントは、同じメッセージを受信します。
今、私は特定のクライアントにプライベートメッセージを送信する方法を知りたいのですが、私は2人(クライアントからクライアントへのストリーム)間のプライベートチャット用の1ソケットを意味します。ありがとうございます。
どのように解決するのですか?
ユーザーが接続するとき、ユーザー名と一緒にサーバーにメッセージを送る必要があります。これは電子メールのように一意でなければなりません。
ユーザー名とソケットのペアは、このようなオブジェクトに格納されます。
var users = {
'[email protected]': [socket object],
'[email protected]': [socket object],
'[email protected]': [socket object]
}
クライアント側で、以下のデータを持つオブジェクトをサーバに発行します。
{
to:[the other receiver's username as a string],
from:[the person who sent the message as string],
message:[the message to be sent as string]
}
サーバー上で、メッセージを待ち受けます。メッセージを受信したら、そのデータを受信者に向けて発信する。
users[data.to].emit('receivedMessage', data)
クライアント側では、サーバーからの'receivedMessage'というemitsをリスニングし、そのデータを読むことで、誰から来たのか、どのようなメッセージが送られたのかを処理することができます。
関連
-
[解決済み] socket.ioとnode.jsで特定のクライアントにメッセージを送信する。
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み] jQueryで複数のクラスを持つ要素を選択するにはどうすればよいですか?
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる
-
[解決済み] 変異を伴わないオブジェクトからの値の削除
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] socket.ioとnode.jsで特定のクライアントにメッセージを送信する。
-
[解決済み] JavaScriptで次の要素/前の要素を取得しますか?
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] 無効になっている入力フィールドの値を送信する
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] Node.jsのES6クラスをrequireで作る