如何在发布 - 订阅方案中实现WCF服务器的低延迟?具体来说,客户订阅数据并接收更新,有问题的延迟是在数据更改和接收更改的客户之间? CPU,内存,带宽要求并不重要,可能很高。
基础知识是显而易见的:二进制序列化,命名管道等。但是,例如,通过始终连接的流发送数据是否有意义?或者将批量更新作为单个消息发送以减少RPC /报头开销?
可能有一些项目可以使用代码或接口作为示例吗?
答案 0 :(得分:1)
如果您使用双工通道,则可以让客户端连接到服务器,并在此过程中将另一个服务合同作为回调传递。然后,服务器使用此回调在客户端可用时向客户端发送更新。
我使用这种方法编写了一个内部发布的pub-sub机制,延迟时间与您通过WCF预期的一样低。
您的目标表现是什么?
This MSDN article讨论了使用WCF双工通道。
答案 1 :(得分:1)
不是一个全面的解决方案但是:为了减少与数据大小和网络传输速度相关的延迟,您可以使用google protocol buffers通过网络压缩数据。 GitHub项目是here。
答案 2 :(得分:1)
你看过
吗?http://geekswithblogs.net/BVeldhoen/archive/2008/01/26/wcf-latency-test-harness.aspx
它考虑了各种绑定和数据大小。