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

时间:2013-04-28 07:52:52

标签: c# .net winforms web-services

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

角色是每当App需要执行操作时,它会调用WS并且WS使用DB执行神奇工作,然后将结果返回给App。

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

我的信息缺乏,这就是为什么我希望你们帮助我找到这个服务器调用的最佳解决方案 - 客户端和客户端做什么事情。

2 个答案:

答案 0 :(得分:1)

SignalRGitHub)是一个很好的框架,可以近乎实时地“推送”给客户。它适用于Web和WinForms客户端。

答案 1 :(得分:1)

我有非常简短和实用的解决方案想法:

  1. 每个客户端应用程序每隔x秒/分钟调用一次Web服务的YesIamAlive()实例的方法。如果服务器收到此请求,它将被保存,以便您能够查看哪些客户端还活着。每个不发送最后x秒/分钟的活动请求的客户端不再存活。另一种方法也是常规调用,它迫使客户做一个动作。

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

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