gpt4 book ai didi

c# - 服务器应该如何向富客户端推送数据

转载 作者:搜寻专家 更新时间:2023-11-01 02:34:53 25 4
gpt4 key购买 nike

我正在编写一个简单的会计程序,其中包含几个 C# winform 客户端和一个将数据读/写到数据库中的 java 服务器应用程序。其中一项要求是所有 C# 客户端都应从服务器接收更新。例如,如果用户 a 从他的 C# 客户端创建了一张新发票,其他用户应该从他们的客户端看到这张新发票。

我的经验主要是网络开发,我不知道用 C#s 客户端和 Java servlet 服务器来满足这个要求的最佳方法是什么。

虽然我最初是使用 Glassfish 运行 ActiveMQ 并使用消息发布/订阅方法,以便可以将更新推送到 C# 客户端。我将创建不同的主题,如 newInvoice、cancelInvoice 等,以区分消息类型。每条消息将仅包含以 JSON 编码的对象。

但在我看来,这涉及相当多的工作。鉴于我的用户群非常小(只有 3 或 4 个并发用户),在我看来应该有一些更简单的解决方案。 (我不熟悉套接字编程:))

我知道这是一个客户端-服务器编程 101 题,但如果有经验的程序员能指出一些简单的解决方案,那就太好了。

最佳答案

此处最简单的方法通常是简单地使用轮询 - 即让客户端每隔(您的时间间隔)查询一次数据。这避免了一系列问题(防火墙、安全、视线、分辨率、客户跟踪等)。

使用 WCF,您可以在双工 channel 上进行回调(允许服务器主动向客户端发送消息),但这更复杂。我重视简单,所以我通常只是投票。

在此处提供帮助的技巧是将系统设计为具有用于查询“自 x 以来发生的更改”的内置机制 - 例如,审计表,可能由数据库触发器提供。当然,具体细节因项目而异。

您可能想要查看的另一个选项是 ADO.NET 同步服务;这可以满足您的大部分要求,使数据库的本地副本与服务器保持同步 - 但它有一些复杂性。这在“本地数据库缓存”VS 模板中可用 (IIRC)。

关于c# - 服务器应该如何向富客户端推送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/767321/

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