gpt4 book ai didi

.net - 是否可以创建 WCF "reverse"tcp channel ?

转载 作者:行者123 更新时间:2023-12-04 07:09:30 26 4
gpt4 key购买 nike

通常,WCF TCP channel 将连接到主机,然后允许您通过它进行方法调用。

我想要一个与客户端建立出站连接的服务,但是一旦建立了连接,客户端就可以像传统连接一样对我的服务进行方法调用。

我怀疑这是某种自定义 channel ,但想知道是否
a) 这已经完成了
b) 是否有我应该尽量避免的陷阱

注意 - 我不是在谈论双工风格的回调,而是客户端和服务器继续进行传统风格的对话,其中服务器通过标准 wcf 调度程序响应客户端请求 - 只有底层 tcp 连接的发起者是服务器而不是客户端。

Siz 建议它就像使用双工契约(Contract)一样简单。稍微扩展一下要求:
a) 禁止客户端连接到服务器。因此,如果双工 channel 建立单独的 tcp 连接,那么这将不起作用。我认为从我的测试来看,它不会但在 tcp 下共享原始连接(有人可以确认吗?)

b) 客户端需要调用服务器上的多个服务,因此设置反向连接的“回调契约(Contract)”机制会很尴尬,因为需要许多“注册”样式的调用才能将它们全部设置好。理想情况下,我想一次设置多个服务 - 使用这种方法可以吗?

最佳答案

看看MSDN here . NetTcpBinding 支持双工通信。

在您的情况下,映射到 WCF 术语,所有客户端实际上都在托管服务,而主机实际上是连接到多个主机的客户端。双工 channel 将允许您双向发送消息。

双工通信并不意味着回调函数,而是一个完整的合约。当客户端打开到主机的双工连接时,它最终会运行自己的服务器,沿着回调合约句柄监听来自服务器的传入调用。任何发送给客户端 -> 服务器或服务器 -> 客户端的消息都将通过所有标准的 WCF 基础结构。

公平地说,这并不能完全回答您的问题。但是,要创建任何 channel ,您首先需要连接发起者联系某种服务器。因此,最简单的方法是双工连接。

关于.net - 是否可以创建 WCF "reverse"tcp channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/619015/

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