Go で WebSocket アプリケーションを開発する場合、特定のクライアントにのみメッセージを送信する方法を理解することが重要です。この記事では、ユーザー間のデータ分離を確保しながら、Gorilla Websocket を使用してこれを実現する方法を検討します。
一意の接続 ID の取得
複数のクライアントを区別するため, ユーザー登録時に接続ごとに一意の識別子を生成できます。この ID は、対応するユーザー ID とともにデータベースに保存されます。
ハブの構造
Gorilla Websocket では、ハブはすべてのクライアント接続を管理する中央ハブとして機能します。このハブの接続プールを反復処理することで、接続されているすべてのクライアントにメッセージをブロードキャストできます。
プライベート メッセージ メソッド
プライベート メッセージを送信するには、専用のメソッドを作成する必要があります。ハブ内。このメソッドは、受信者のユーザー ID を入力として受け取ります。データベース内で対応する接続 ID を検索することで、その特定のクライアントにメッセージを直接送信できます。
このメソッドの例を次に示します。
<code class="go">func (h *Hub) SendPrivate(userID string, message []byte) { // Retrieve connection ID from database connID := GetConnectionIDFromDatabase(userID) // Find connection in hub pool conn := h.connections[connID] if conn != nil { // Send message to connection conn.send <- message } }</code>
次のように実装します。この方法を使用すると、ユーザー ID に基づいて特定のクライアントにメッセージを選択的に送信できるようになります。このアプローチにより、承認されたユーザーのみが関連する通知や更新を受信できるようになり、WebSocket アプリケーションのプライバシーとセキュリティが強化されます。
以上がGorilla Websocket を使用して Go で特定のクライアントにプライベート メッセージを送信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。