我的任务是创建一个Web套接字服务器,供用户互相聆听。状态。
这有点简单,但我还没有找到任何有用的方法来实现这一点,所以希望有人可以帮助我。我特别不想使用SignalR等,我的目的是看看是否可以尽可能简单地使用c#native工具。
在我的用例中,我有团队,有两种类型的成员,所以我的数据模型可能是这样的:
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,
}
听众成员应该从其团队中的每个普通成员接收状态更新。
我发现的唯一一个工作示例就是简单的echo服务器,就像Paul Batum的例子:http://paulbatum.github.io/WebSocket-Samples/AspNetWebSocketEcho/
有没有办法将代码增强到向完全不同的侦听套接字发送消息,而不是示例中的相同内容?具体来说,对同一团队的那些听众用户?
答案 0 :(得分:0)
听起来你想使用Observer / Observables模式。这通常是通过发布/订阅系统实现的。您需要创建数据结构来处理线程安全的订阅列表(添加/删除),重试和失败恢复机制(分布式计算101),传入数据的队列机制等等...等等工作比你想象的要好。
编写任何程序的第一个经验法则:在继续实施之前查看存在的内容。
ActiveMQ,IBM MQ / MQ-Lite,Kaazing(我为之工作),许多MQTT / WS实现......已经有大量的OSS东西可供使用。