c# - 从 WebSocketCollection 获取特定客户端

标签 c# asp.net websocket

我正在编写一个 websocket 处理程序,它应该从一个客户端向另一个客户端发送消息。

代码

public class SocketHandler : WebSocketHandler
{
    private static WebSocketCollection clients = new WebSocketCollection();

    private int id;

    public override void OnOpen()
    {
        this.id = Convert.ToInt32(Cypher.Decrypt(this.WebSocketContext.QueryString["id"]));
        clients.Add(this);         
    }

    public override void OnMessage(string message)
    {
        //sending code here
    }
}

我知道我是否需要向所有连接的客户端发送消息,我只需要这样做:

clients.Broadcast("消息");

...但我需要的是将查询字符串中分配给它的特定 Id 发送给特定客户端 - 比方说 1156

如何从客户端集合中获取带有 id=1156 的客户端?

我尝试使用 lambda 表达式,但它不起作用。它应该很简单......我以前在 LINQ 中做过类似的事情,但此时我完全迷失了。

最佳答案

我终于设法通过客户搜索特定客户并将消息专门发送给他。

clients.SingleOrDefault(r => ((SocketHandler)r).id == 1156).Send("Hey 1156!");

您只需要执行类型转换,然后通常的查询就可以正常工作。

关于c# - 从 WebSocketCollection 获取特定客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17955722/

相关文章:

C#/XNA伪随机数创建

asp.net - 如何获取 Visual Studio 'Publish' 功能以包含生成后事件中的文件?

c# - 如何禁用回发或编码查询字符串 ASP.NET

ios - 在 websocket/SignalR 响应中获取 "\n "?

c# - 可以接受在点之前有空格吗?

c# - 从 LINQ DataContext 中的表名获取表数据

c# - 是否有带有 T 检验和 p 值的 .Net Statistics 库?

asp.net - ASP.NET 中的 iPhone Web 应用程序开发 - 从哪里开始?

c++ - 无法通过 WebSockets 发送二进制数据

php - 为什么websocket可以关闭连接?