我正在编写一个支持 WCF 的分布式应用程序原型(prototype),以尝试找出升级现有的“通过 tcp 发送 xml 进行通信”应用程序时遇到的任何问题。我使用回调合约向服务器注册客户端(ServiceHost 中的单例),到目前为止客户端和服务器之间的所有通信都正常。我可以将多个客户端连接到服务器,并从服务器发送所有客户端都会收到的广播。我可以阻止特定客户端,而其他客户端仍然会收到调用。这很好。
为了继续学习和评估性能,我希望客户端记录服务器发送每条消息的时间,以及客户端接收同一消息的时间。我应该如何最好地解决这个问题?
是否有类似于 SOAP 扩展的东西,我可以在其中添加从服务器传出和到客户端传入的内容?或者我是否需要向服务器在客户端调用的每个方法添加一个“timeSent”参数并记录客户端接收到的时间(哎呀!)?有没有更好的方法来实现这一点?
我使用的是 net.tcp 而不是 wsDualHttpBinding(它也可以工作,但性能较差)。
最佳答案
嗯...这是一个困难的问题。这里的问题是您甚至无法确保客户端和服务器计时器同步。
如果您想要发送一些带外数据,这样您就不需要修改您的方法,您可以使用建议的方法 here 。我想应该够了。
关于c# - 查找使用 WCF net.tcp 发送消息所花费的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/160040/