我正在为Android编写应用程序,其中两个设备应该通过互联网相互通信。除此任务外,它们还通过REST与EJB3服务器通信。因此,我决定一举两得,并使用REST + EJB3在两个配对的Android设备之间传输数据。 所以我实现的场景是这样的:
所以在这个模式中我看到两个缺点: - 服务器端的等待线程 - 它们消耗服务器资源,因此限制了服务器吞吐量 - 如果服务器线程不等待超时的答案,那么客户端应该重复使用请求并花费大量流量。
解决此类问题的最佳做法是什么?
P.S:忘记提及两个设备应尽可能平稳,快速地交换数据。
答案 0 :(得分:2)
您需要使用C2DM http://android-developers.blogspot.com/2010/05/android-cloud-to-device-messaging.html
当消息需要从A发送到B时 - A应该连接到服务器并且根据数据种类/数量 - 服务器将通过C2DM推送数据或者告诉设备B返回并获取数据。
无论如何,我会将数据存储在服务器上。如果推送失败 - 您可以重试它。无需重新发明轮子。大多数问题/问题已在C2DM中解决