gpt4 book ai didi

.net - 有没有办法通过 WCF 中的单个 TCP 连接进行真正的双向通信?

转载 作者:可可西里 更新时间:2023-11-01 02:55:08 24 4
gpt4 key购买 nike

我有一个 WCF 服务器,它公开了一个接口(interface),该接口(interface)具有一个用于向客户端发送事件的回调接口(interface)。

我宁愿不将回调接口(interface)上的所有方法都标记为“OneWay”,因为它会使错误跟踪和记录变得更加困难。

客户端是用 WinForms 编写的,因此在对服务器的调用返回之前不会处理回调。 (这是我想要的行为)

我使用 Asynchronous Eg 进行所有回调。 BeginMyMethod(...),因此服务器不会阻塞等待客户端。

然而,如果回调被发送到与向服务器发送请求相同的客户端,则 TCP channel 会自行死锁,因为它似乎无法在客户端已通过同一 channel 将回调响应发送回服务器。

有没有办法在 WCF 中通过单个 TCP 连接进行真正双向通信?

最佳答案

如果服务器和客户端都确认为服务器和客户端(如果可以理解的话),您可以这样做

它会像这样工作:

  • 当客户端启动时,它会调用服务器并注册自己
  • 服务器然后知道客户端在哪里,并可以通过客户端公开的服务联系客户端。

另一个更简单的解决方案是不重用 channel ,从而避免死锁。

关于.net - 有没有办法通过 WCF 中的单个 TCP 连接进行真正的双向通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1834019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com