繁体   English   中英

在向客户广播事件的OneWay和Async呼叫之间的交易是什么? (WCF)

[英]What is the trade of between OneWay and Async calls for broadcasting events to clients? (WCF)

我正在编写一个WCF(目前计划中的netTcpBinding)客户端/服务器应用程序,该应用程序必须支持“少量”客户端,包括向客户端发送事件。

我不希望服务器在客户端处理事件时阻塞。

逻辑上,我看不到将回调方法标记为“ OneWay”或使用“ being_MethodName(..)”调用之间的匹配差异。

那么每种技术的优缺点是什么?


从我的阅读中发现,OneWay消息的错误处理很复杂,您可能会意外使通道变坏……例如,不要着火而忘记!

根据抽象合同定义POV,如果服务器不需要客户端的任何响应,则没有理由将其写入与客户端的“合同”中。

从更务实的角度来看,您将不得不承担带宽成本和必须发送和接收无关消息的处理开销。

我还要担心的另一个主要问题是,客户端是否在服务器向客户端发送通知的同一TCP通道上向服务器发送消息。 如果是这种情况,则您绝对想使用OneWay消息,以避免可能的死锁(请参阅我在此线程中的注释: 使用回调时,WCF双工通道会关闭 )。

另外,要明确一点,单向和异步不是唯一的-您可以并且很可能应该使用异步模式发送单向消息。 例如,如果网络缓冲区已满,则有可能将单向消息发送为阻塞,因此使用异步将确保您的服务器事件通知线程保持不受阻塞。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM