0

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

作用是每当 App 需要做一个动作时,它调用 WS 并且 WS 与 DB 一起做神奇的工作,然后将结果返回给 App。

到目前为止,一切都很好,但我需要的不仅仅是这些。我需要第三个应用程序,我们称之为机器人,这个机器人怪物应该有能力找到所有活着的客户端(应用程序实例)而不是杀死,但在特定时间调用它们,然后应用程序将决定做一个被调用时的动作。

这里缺少我的信息,这就是为什么我希望你们帮助我找到解决 Server-Calls-Client-And-Client-Does-Something 问题的最佳解决方案。

4

2 回答 2

1

SignalR ( GitHub ) 是一个出色的框架,可以近乎实时地向客户端“推送”。它适用于 web 和 WinForms 客户端。

于 2013-04-28T08:08:27.330 回答
1

我有非常短手和务实的解决方案想法:

  1. YesIamAlive()每个客户端应用程序每 x 秒/分钟调用一次 Web 服务实例的方法。如果服务器收到此请求,它将被保存,因此您可以查看哪些客户端还活着。在最后 x 秒/分钟内未发送活动请求的每个客户端不再活动。另一种方法也经常调用,它强制客户端执行操作。

  2. 您可以使用 SignalR 在服务器和客户端之间进行 websocket 通信。此示例显示了一个聊天服务器,它与您的请求不同,但它显示了它背后的想法:http: //braindrivendevelopment.com/2013/01/28/signalr-with-windows-azure-cloud-services/

我很确定您的问题有更优雅的解决方案。

于 2013-04-28T08:11:28.857 回答