使用 Web 套接字的状态侦听器
本文关键字:状态 侦听器 套接字 Web 使用 | 更新日期: 2023-09-27 18:31:47
我的任务是创建一个Web套接字服务器,供用户监听彼此的状态。
这是一项简单的任务,但我还没有找到任何可用的方法来完成此操作,所以希望这里有人可以帮助我。我特别不想使用 SignalR 之类的,我的目标是看看这是否可以尽可能简单地使用 c# 本机工具完成。
在我的用例中,我有团队,其中有 2 种类型的成员,所以我的数据模型可能是这样的:
public class Team
{
public int id;
public string name;
}
public class TeamMember
{
public int id;
public int teamId;
public string name;
public MemberType type;
}
public enum MemberType
{
Normal,
Listener,
}
侦听器成员应从其团队中的每个普通成员接收状态更新。
我找到的唯一工作示例是简单的回显服务器,就像Paul Batum在这里的例子一样:http://paulbatum.github.io/WebSocket-Samples/AspNetWebSocketEcho/
有没有办法增强该代码以将消息发送到完全不同的侦听套接字,而不是示例中的相同侦听套接字?具体来说,对同一团队的那些听众用户?
听起来你想使用观察者/可观察者模式。 这通常是通过发布/订阅系统实现的。 您需要创建数据结构来处理线程安全的订阅列表(添加/删除)、重试和故障恢复机制(分布式计算 101)、传入数据的队列机制等。等。。。 它的工作比你想象的要多。
编写任何程序的第一条经验法则是:在继续实施之前查看存在的内容。
ActiveMQ,IBM MQ/MQ-Lite,Kaazing(我为谁工作),许多MQTT/WS实现...大量的OSS东西已经在那里使用。