在服务器和android应用程序之间创建双向持续通信的最佳方法是什么?
当我说持续通信时,我的意思是客户端向服务器请求数据或服务器不断向客户端推送数据。
据我所见,我不能使用 websockets,因为它们是服务器/浏览器设置的设计者。是对的吗?如果是这样,有什么替代方案?
在 Android 中是否有免费的框架可以使用它?
我想做的是一个像聊天但适用于多人的应用程序。所以他们都将在他们的设备上进入一个“房间或频道”,然后以服务器处理的方式相互交互。
谢谢!
据我所知,一种可能的方法是使用客户端可以连接到服务器的 web 服务,如果 web 服务是 RESTFul 有很多库可以访问它,其中之一是 apache HTTPClient ,用于服务器推送我知道的唯一方法是将数据推送给客户的 C2DM。
你可能想看看 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)正在提供基于高速公路的商业虚拟设备:http: //autobahn.ws
免责声明:我是 Autobahn 的作者,为 Tavendo 工作。
但是在 iOS 和 Android 设备上保持连接在后台运行确实会消耗电池电量,对于遇到此问题的人,我建议在应用程序不在前台时使用推送通知。
据我所见,我不能使用 websockets,因为它们是服务器/浏览器设置的设计者。是对的吗?如果是这样,有什么替代方案?
Websocket 是一个 IETF/W3C 协议,因此它并不局限于特定的客户端平台。您可以使用 Android websocket 在 Android 和服务器端之间进行双向通信。对于 Android websocket 客户端,我推荐使用AndroidAsync。它具有在 Android 和服务器之间建立通信链接和交换数据所需的所有 websocket API。