如何在应用程序的其他实例上显示一个Windows应用程序实例所做的更改

本文关键字:实例 应用程序 Windows 一个 其他 显示 | 更新日期: 2023-09-27 18:08:03

下面是我的场景:

我必须用c#开发一个WPF应用程序。NET有两个主要用户:团队领导(TL)和操作技术人员(OT)。此应用程序将在同一网络上的多台独立机器上运行。操作技术人员将使用该应用程序查看工作编号列表,团队领导将能够根据需要更新工作编号列表。

我的问题是,我不确定如何在团队领导做出这些更改后向操作技术人员显示这些更改。

在OT和TL的机器上运行的应用程序将有唯一的实例。

我的第一个想法是让TL的实例更新数据库,让OT的实例定期检查数据库的更新,但这看起来很笨拙,是一个糟糕的设计。

是否有一种方法,一旦TL更新了作业编号列表,我可以通过网络向OT的实例发送一个"触发器"来告诉它更新?

如何在应用程序的其他实例上显示一个Windows应用程序实例所做的更改

您可以在操作技术员的机器上有一个TCP侦听服务,在团队领导的机器上有一个TCP客户端http://www.codeproject.com/Articles/2418/Making-Socket-Based-Application-Using-TcpListener

您可以在您的WPF应用程序中托管WCF服务(例如这里所描述的)。该服务将在OT机器上的某个端口上运行,并将侦听来自TL机器的传入事件(TL机器应该知道OT机器的地址和端口)。当然,共享数据仍然需要数据库,但是这个数据库不需要轮询。

也许最简单的解决方案是在发布/订阅模式中使用某种消息总线,例如RabbitMQ或ZeroMQ。OT的实例将订阅一个主题,TL的实例将在其上发布带有作业号的更新。

为什么不使用数据库事件通知客户端数据库更新

https://msdn.microsoft.com/de-de/library/ms189453.aspx

我决定尝试使用MQTT协议为不同的应用程序提供发布/订阅服务。这将解决一些问题,因为实际上有多个团队领导,每个团队领导都有自己的操作技术员。

现在了解如何使用。net实现MQTT。

有人知道吗?