Android应用,打开与移动设备的连接

时间:2012-04-20 19:40:35

标签: android sockets websocket

在服务器和Android应用程序之间创建双向持续通信的最佳方法是什么?

当我说持续沟通时,我的意思是客户要求服务器提供数据或服务器不断向客户推送数据。

从我看到的,我不能使用websockets,因为他们是服务器/浏览器设置的设计者。是对的吗?如果是这样,有什么替代方案?

Android中是否有可用于此的免费框架?

我要做的是一个应用程序,它像聊天一样,但适用于多人。所以他们都会在他们的设备上进入一个“房间或频道”,然后以服务器的方式互相交流。

谢谢!

5 个答案:

答案 0 :(得分:1)

据我所知,一种可能的方法是使用客户端可以连接到服务器的Web服务,如果Web服务是RESTFul,则有许多库可以访问它,其中一个是apache HTTPClient,用于服务器推送我知道的唯一方法是C2DM,用于将数据推送到客户端。

答案 1 :(得分:0)

对于持续开放的数据连接,您可以使用Sockets。但是你也应该考虑这样一个事实,即一直打开的连接也会快速耗尽你的电池。有关详情,请参阅thisthis

答案 2 :(得分:0)

你可能想看看AutobahnAndroid:

https://github.com/tavendo/AutobahnAndroid

提供本机Android / Java WebSocket客户端框架(加上WAMP = PubSub / RPC over WebSocket .. http://wamp.ws)。

这与服务器浏览器客户端的WebSocket服务器完全可互操作。

AutobahnXX库(其中XX = Python,JS,Android)是开源的(Apache 2.0)。我们(Tavendo)正在提供基于Autobahn的商业虚拟设备:http://autobahn.ws

免责声明:我是高速公路的作者并为Tavendo工作。

答案 3 :(得分:0)

但是在iOS和Android设备上保持连接在后台运行会耗尽电池,对于遇到此问题的人,我建议在应用不在前台时使用推送通知。

答案 4 :(得分:0)

  

从我看到的,我不能使用websockets,因为他们是设计师   服务器/浏览器设置。是对的吗?如果是这样,有什么替代方案?

Websocket是一种IETF / W3C协议,因此它不仅限于特定的客户端平台。您可以使用Android websocket在Android和服务器端之间进行双向通信。对于Android websocket客户端,我建议使用AndroidAsync。它具有建立通信链接并在Android和服务器之间交换数据所需的所有websocket API。