概述 我正在为新项目做技术的入门决策。我们需要将业务对象维护在中心位置并在客户端设备上查看。客户端设备将是胖客户端(WPF,Silverlight,MacOS,Linux)和移动客户端(Android,iPad / iPhone,WP7)。名义用例是局域网场景,但分布式互联网使用也是可能的。我们需要能够让中心位置(思考WCF服务)根据客户端的输入更新业务对象,并快速在所有正在查看这些对象的连接设备上更新这些业务对象的视图。
安全 安全性是一个低关注点,唯一重要的数据是此时的名称,尽管尚未作出最终决定。
基本问题 我的基本问题是:如何最好地接近这个?我在考虑将WCF服务作为业务对象的主页,但我们需要快速分发更改。优选地,它对用户来说似乎是即时的。对我而言,这意味着大约1/4秒。我只是不知道这是否可能。我假设要联系设备受众,它需要是一个基本的Web服务。什么将以这种速率从设备进行轮询到设备的电池寿命?是否有一种优雅的方式来推动所有这些设备?
答案 0 :(得分:1)
由于您需要非常短的更新/传播时间(1/4秒),因此您需要使用非常快速的Web服务轮询,这是IMO无法实现的。
对于这种短暂延迟,您最好的选择是使用某种网络推送技术(彗星,网页插座)甚至直接插座。
另外,我认为您无法推送处于睡眠模式的设备。他们至少需要运行处理器和网络,这当然会大大缩短电池寿命。
答案 1 :(得分:1)
你也可以在WP7上使用JSON,它通常在WP7上使用起来要快一些,特别是在压缩时效率更高,同样在WP7 Mango中你可以实现一个后台代理,它根据用途定期更新(10~30分钟)应用已经死亡时手机。
在您的场景中推送服务对于所有设备都是理想的,但轮询会不断地耗尽电池并且还会严重影响用户带宽。但是你无法保证它会降落在设备上(至少在WP7上,你的经验不是因为设备有绑定服务的限制)。 Mango支持套接字,这可能是您使用非常小的带宽的理想选择,只要用户没有松动连接,几乎可以保证您的内容传送或设备开始轮询的标志。
如果移动设备使用的是移动设备而不是WiFi连接,那么只有1/4对移动设备非常苛刻。据报道,WP7的UDP性能问题见Poor UDP performance with Windows Phone 7.1 (Mango)
我从来没有做过这样的事情,但是我要为Mango自己实现套接字,目前只是通过我的WCF服务使用推送服务来提供所有内容。
祝你好运
答案 2 :(得分:0)
在我们的团队中,我们有同样的必要条件来开发多平台的应用程序,例如iOS WP7 Silverlight等。
对我们来说,最佳做法是使用WCF RIA服务在.NET中开发服务,此外还有一些端点,如SOAP for WP7和JSON for iOS。
数据响应速度非常快。