gpt4 book ai didi

.NET WCF - 在服务器处理时更新客户端 GUI

转载 作者:行者123 更新时间:2023-12-01 05:40:33 24 4
gpt4 key购买 nike

在客户端/服务器应用程序方面,我是新手。 (我只编写了 asp.net 应用程序)

我想创建一个包含 的应用程序多个 WinForm 客户端和一个 .NET 服务器(我正在考虑 WCF)。
客户端和服务器之间的通信应该在 http(端口 80)上。

应用场景:

客户端会将关键字传递给服务器,例如“books”。

然后,服务器将开始一个 1 秒到 10 分钟的过程,根据这个关键字搜索匹配数据。

服务器将查找结果列表(从 1 个结果到 N 个结果)。

我希望客户端在服务器搜索时使用找到的结果更新 GUI。 (不要等到服务器完成)。

我的问题是:

WCF 是服务器端的正确选择吗?

什么样的 WCF 协议(protocol)?双工、轮询、基于 MSMQ?

欢迎任何指向相关示例代码、入门工具包等的链接:)

最佳答案

如果您使用 WCF,MSMQ 将是传输层(“绑定(bind)”以使用 WCF 术语)并且与您在此处尝试执行的操作并不真正相关(您可以在 NetMsmqBindingWsHttpBinding 与. NetTcpBinding ,仅举几例)。您可以使用轮询或双工绑定(bind),两者都是完全有效的,尽管实现会大不相同。

要实现轮询方法,我建议使用基于 session 的 WCF 服务。只要您在客户端中保留 WCF 服务的代理,您的 session 就会持续,并且您将继续使用相同的代理来获取您的请求的更新,直到它最终返回完成状态。对于客户端和服务来说,这似乎相当简单。

使用双工服务也是一种有效的方法,但如果您从未使用过 WCF,则实现起来可能会更加复杂。使用双工服务,在您的 ServiceContract 的定义中你定义一个 CallbackContract ,这是另一个 ServiceContract您的服务用于将消息发送回客户端。在您的情况下,我认为您需要在 CallbackContract 中进行 2 个不同的操作。 ,一个用于报告每个结果,另一个用于指示已检索到所有结果,以便您的客户知道不再期待任何结果并关闭 channel 。 The MSDN documentation on Duplex services相当彻底,但 WCF 肯定有一点学习曲线。

关于.NET WCF - 在服务器处理时更新客户端 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5837507/

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