C# 从服务器应用程序调用客户端的解决方案

C# 从服务器应用程序调用客户端的解决方案,c#,.net,winforms,web-services,C#,.net,Winforms,Web Services,我有一个Windwos应用程序(我们称之为App)、一个WebService项目(称之为WS)和一个SqlServer数据库(DB),这些技术都来自Microsoft和.net 其作用是,每当应用程序需要执行某个操作时,它都会调用WS,WS对DB执行神奇的操作,然后将结果返回给应用程序 到目前为止,还不错,但我需要更多的东西。我需要第三个应用程序,让我们称之为机器人,这个机器人怪物应该有能力找到所有活着的客户端(应用程序实例),而不是杀死,但在某些特定时间调用它们,然后应用程序将决定在被调用时执

我有一个Windwos应用程序(我们称之为App)、一个WebService项目(称之为WS)和一个SqlServer数据库(DB),这些技术都来自Microsoft和.net

其作用是,每当应用程序需要执行某个操作时,它都会调用WS,WS对DB执行神奇的操作,然后将结果返回给应用程序

到目前为止,还不错,但我需要更多的东西。我需要第三个应用程序,让我们称之为机器人,这个机器人怪物应该有能力找到所有活着的客户端(应用程序实例),而不是杀死,但在某些特定时间调用它们,然后应用程序将决定在被调用时执行操作


我的信息在这里缺乏,这就是为什么我想让你们帮我找到这个服务器调用客户端的最佳解决方案,客户端会做一些事情。

()是一个非常好的框架,可以近实时地“推送”到客户端。它同时适用于web和WinForms客户端。

我有一些非常简单实用的解决方案想法:

  • 每个客户端应用程序每x秒/分钟调用一个方法,例如Web服务的
    YesIamAlive()
    。如果服务器收到此请求,它将被保存,以便您能够看到哪些客户端处于活动状态。在最后x秒/分钟内未发送活动请求的每个客户端不再是活动的。另一种方法,也是在常规基础上调用的,它强制客户执行操作

  • 您可以使用signar在服务器和客户端之间进行websocket通信。此示例显示了一个聊天服务器,它与您的请求不一致,但它显示了其背后的思想:

  • 我很肯定,对于你的问题,还有更优雅的解决方案