如何使用WebSockets将消息发送到Asp.net(c#)中的特定客户端

时间:2017-01-09 05:21:56

标签: c# asp.net websocket

我正在使用Microsoft.WebSockets并在向特定客户端发送消息时遇到问题。目前我已经使用了WebSocketCollection对象并在其上添加了每个新客户端。它允许向所有客户端广播消息。但我想向特定的单一信息发送消息,即信号器提供从服务器向特定客户端发送消息,即

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 个答案:

答案 0 :(得分:1)

试试这个

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