在这种情况下应该使用什么样的网络协议?

时间:2013-10-10 14:27:06

标签: web-services network-programming webserver windows-phone network-protocols

嗯...

我正在使用移动应用程序和网络服务器。

我的Web服务器的一个特征是它随机生成不同的数据集。换句话说,我无法预测服务器何时将现成数据发送到移动应用程序。

另一方面,移动应用程序需要接收服务器生成的所有数据。可以多次请求方法来获取所有这些数据。实际上,这不是一个好方法,因为我不知道何时请求数据。

如果移动应用程序可以监听服务器,例如,在一次启动请求或继续连接之后,服务器可以随时发送任何数据集。

问题是:什么是适合这种情况的协议?我怎么能用那个?例子?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以创建与服务器的持久TCP / IP连接,并永久侦听传入数据(使用自定义协议或基于websocket的东西)。但是,如果是移动设备,这种永久连接可能会严重影响您的电池寿命。如果操作系统因内存不足而自动关闭应用程序,您也将失去连接。

此问题的默认方法是推送通知/推送服务,其中您的服务器向电话提供商的服务器(例如Microsoft或Apple推送服务器)发送有关新数据的通知,并且此服务器发送通知(以及作为其他在线服务的通知)到您的手机。 Windows Phone的一些信息: http://msdn.microsoft.com/en-us/library/hh221549.aspx http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402558%28v=vs.105%29.aspx

根据您获得新数据的频率,这两种方法都有意义。

答案 1 :(得分:0)

WebSockets可以是答案:http://en.wikipedia.org/wiki/WebSocket

具体来说,对于Windows Phone,还有一个解决方案:http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402558(v=vs.105).aspx