2017-01-09 8 views
0

私はMicrosoft.WebSocketsを使用しており、クライアントにメッセージを送信する際に問題が発生しています。現在私はWebSocketCollectionオブジェクトを使用して、その上にすべての新しいクライアントを追加しました。すべてのクライアントにメッセージをブロードキャストできます。しかし、私は、特定の単一のもの、すなわちSignalrにメッセージを送りたい、すなわちWebSocketを使用してAsp.net(c#)のperticularクライアントにメッセージを送信する方法

Hub.Clients.Client(connectionId).yourClientSideMethod() 

私はそれを用いMicrosoft.WebSocketsを達成したい特定のサーバからクライアントにメッセージを送信するために用意されています。私はインターネット上でそれについて多くを検索しましたが、解決策を見つけることができませんでした。それで私を助けてください。次のように

私のコードは次のとおりです。

class ChatWebSocketHandler : WebSocketHandler 
{ 
    private static WebSocketCollection _chatClients = new WebSocketCollection(); 
    private string _username; 

    public ChatWebSocketHandler(string username) 
    { 
     _username = username; 
    } 

    public override void OnOpen() 
    { 
     _chatClients.Add(this); 
    } 

    public override void OnMessage(string message) 
    { 
//for broadcasting messages to all clients 
     //_chatClients.Broadcast(this._username + " : " + message); 

//for sending message to individual client i want something like 
_chatClients.Single(x=>x._username.Equals("name")).Send(message); 
    } 

    public override void OnClose() 
    { 
     // Free resources, close connections, etc. 
     base.OnClose(); 
    } 
} 

答えて

1

はあなたのソリューションを説明してもらえこの

clients.SingleOrDefault(r => ((SocketHandler)r).userName == "udara").Send("Hello udara"); 
+0

を試してみてください) – Rocketq

+1

あなたは、データベース内CONNECTIN IDを保存することができますし、データベースから特定のユーザーIDを取得できますか? 。選択したユーザーにメッセージを送信できます。 –

関連する問題