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

问题描述:

我有一个Windwos应用程序(我们将其命名为App)和一个WebService项目(将其命名为WS)和一个SqlServer数据库(DB),这些技术都来自Microsoft和.net。从服务器应用程序呼叫客户端的解决方案

的角色,每当应用程序需要做一个动作,它会调用WS和WS所用DB魔术工作,然后将结果返回给应用程序。

到目前为止,一切都很好,但我需要的东西比这更多。我需要一个第三方应用,让我们把它叫做机器人,这个机器人怪物应该找出所有活着的客户端(应用程序实例),而不是杀死的能力,但称他们在一些特定的时间,然后应用程序(一个或多个)会决定做一个被叫的行动。

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

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

  1. 每个客户端应用程序调用用于web服务的每个x秒/分钟的实例YesIamAlive()的方法。如果服务器得到这个请求,它将被保存,所以你能够看到哪些客户端是活着的。没有发送最近x秒/分钟的活动请求的每个客户端不再活着。另一种常规的方法也是要求客户采取行动。

  2. 您可以使用SignalR进行服务器和客户端之间的websocket通信。这个例子显示了一个聊天服务器,这是不simular你的要求,但它显示了它背后的理念: http://braindrivendevelopment.com/2013/01/28/signalr-with-windows-azure-cloud-services/

我敢肯定,甚至还有一些您的问题更优雅的解决方案。

SignalRGitHub)是几乎实时“推”给客户的优秀框架。它适用于Web和WinForms客户端。