我有一个 WCF 服务托管 Net.TCP 绑定,很多客户(> 100)可以连接和接收各种广播信息。相同的消息被发送到所有客户端,我当前正在做的当前方式是有专用线程在BlockingCollection上等待新消息,并且一旦新消息到达它就迭代客户端回调连接列表并调用接收消息作为参数的方法。
所以我的代码目前看起来像这样:
var msg = ... get message from queue ...
foreach(var client in clients)
client.SendMessage(message)
此设计存在以下问题:
有没有人遇到过这类问题?任何提示/技巧/提示?
答案 0 :(得分:1)
似乎你必须使用多播而不是专用通信。因此,每个新客户端都需要加入演员频道(详见IGMP),然后您的服务器将根据您需要发布的消息发送一次。