当移动员工从他/她的Windows Phone 7手机发送任何消息时,我们的桌面应用程序需要直接更新。
目前我们的要求是从我们的桌面应用程序向Windows Phone 7.5发送消息,我们可以使用PUSH通知轻松实现,现在当用户对发送的消息采取某些操作时,Windows Phone应用程序调用WCF服务并将消息传递给接收消息的WCF并放入数据库,应用程序稍后将其读取,这就是问题所在。因为我们的WCF将该消息放入数据库,我们的应用程序每5秒轮询一次,如果从我们的任何驱动程序收到任何回复,那么它正在更新UI。
我们想要实现的是当我们收到任何回复时,我们的桌面应用程序应自动通知并更新UI,然后将其放入数据库。
请分享您在此问题上的经验。
由于
答案 0 :(得分:2)
为什么不更新WCF服务以通知任何已注册的“侦听器”(即运行客户端应用程序的实例)数据库已使用新信息进行更新?
您可以通过让您的服务公开可以由想要注册某些/所有事件类型的客户端调用的服务来实现此目的。客户端应用程序托管实现回调合同的服务,服务可以在引发注册事件时调用该服务。
有一篇很好的MSDN文章单向,回调和pub-sub与WCF的消息:http://msdn.microsoft.com/en-us/magazine/cc163537.aspx。
请务必跟踪并限制客户端应用每秒接收的事件数量 - 您最不希望发生的事情是100个客户端应用程序,如果同时引发50个事件,则每个应用程序都会点击服务器50次!
答案 1 :(得分:0)
理查德的解决方案可能更合适,因为它描述了使用精心打包的WCF API,它将为您做很多事情。另一种方法是自己实施长轮询。然后,您还可以在需要立即更新时更新Windows Phone客户端。我前段时间写了article,如果你在Windows Phone上进行谷歌长时间轮询,你可以找到它。