特定のクライアントに Gorilla Websocket を使用して Go で Websocket メッセージをブロードキャストする
Go と Gorilla Websocket を使用した Websocket 開発の領域では、実際の世界的なアプリケーションでは、多くの場合、全員にブロードキャストするのではなく、特定のクライアントにメッセージを選択的に配信する必要があります。この記事では、これを実現する方法について説明します。
一意のクライアントの識別
ターゲットを絞ったメッセージ配信を可能にするための重要な手順は、クライアントを一意に識別することです。提案されたソリューションでは、登録時にクライアントごとに一意の ID を生成し、それが接続構造のプロパティに保存されます。
クライアント接続の管理
Gorilla Websocket のハブこの構造は、クライアント接続を管理するための中央リポジトリとして機能します。これには、接続されているすべてのクライアントへのメッセージのブロードキャストを容易にする接続プールが含まれています。
ブロードキャスト メッセージとプライベート メッセージ
プライベート メッセージを処理するには、追加のメソッドをハブ。このメソッドはユーザー ID とメッセージを取得し、接続プールを反復処理して、クライアントのユーザー ID が指定されたユーザー ID と一致するかどうかを確認します。一致するクライアントの場合、メッセージが直接送信されます。
コード例
次の疑似コードは、プライベート メッセージを送信するプロセスを示しています。
<code class="go">func SendPrivateMessage(userId, message string) { for c := range hub.connections { if c.userId == userId { select { case c.send <- message: default: close(c.send) delete(hub.connections, c) } } } }</code>
このアプローチを利用することで、開発者は WebSocket アプリケーションで選択的なメッセージ配信を確立し、特定のユーザーに合わせたターゲットを絞った通信を可能にすることができます。
以上がGorilla Websocket を使用して Go で特定のクライアントに Websocket メッセージを送信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。