Go と Gorilla WebSocket を使用して特定のクライアントに送信する方法
WebSocket の世界では、次の宛先にメッセージを送信できることが重要です。すべての人にブロードキャストするのではなく、特定のクライアントに配信します。これに関連して、Go と Gorilla Websocket は、このニーズに対処するソリューションを提供します。
一意の識別子の作成
各クライアントを一意に識別するには、カスタム ID 生成を利用できます。ユーザー登録時の仕組み。 userId フィールドを接続構造に追加します。この一意の ID は、データベース内の対応するユーザーへのリンクとして機能します。
プライベート メッセージ配信
特定のクライアントにメッセージを送信する鍵は、メッセージを変更することにあります。ブロードキャストの仕組み。チャットの例では、ブロードキャスト チャネル h.broadcast を使用して、接続しているすべてのユーザーにメッセージを配信します。プライベート メッセージを送信するには、特定の userId を対象とする新しいメソッドを導入する必要があります。
次のコード スニペットは、ブロードキャスト メッセージ処理の更新されたコードを示しています。
<code class="go">case m := <-h.broadcast: for c := range h.connections { if c.userId == m.RecipientId { select { case c.send <- m: default: close(c.send) delete(h.connections, c) } } } }</code>
この変更されたコードではの場合、メッセージは、userId がメッセージ m の RecipientId フィールドと一致するクライアントにのみ送信されます。これにより、プライベート メッセージが意図した受信者にのみ確実に配信されます。
結論
一意の ID 生成を実装し、メッセージ ブロードキャスト メカニズムをカスタマイズすることにより、Go とゴリラ WebSocket は、特定のクライアントにメッセージを配信するための堅牢なソリューション。これにより、よりパーソナライズされたインタラクティブな WebSocket アプリケーションの開発が可能になります。
以上がGo と Gorilla WebSocket を使用して特定のクライアントにプライベート メッセージを送信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。