通过http REST和EJB3连接两个Android应用程序

时间:2011-05-16 14:51:08

标签: android rest ejb-3.0

我正在为Android编写应用程序,其中两个设备应该通过互联网相互通信。除此任务外,它们还通过REST与EJB3服务器通信。因此,我决定一举两得,并使用REST + EJB3在两个配对的Android设备之间传输数据。 所以我实现的场景是这样的:

  • 两台设备都连接到服务器并获取会话ID。
  • 第一个设备将数据发送到第二个设备
  • 服务器获取数据但不结束http请求,而是将其放入等待池
  • 第二个设备要求数据
  • 服务器将数据传输到第二个设备,并释放第一个设备的等待连接(和线程)。
  • 如果没有第一个或第二个设备请求,则对手在服务器端等待超时,然后再次发送请求。我们需要等待服务器端的数据在数据到达后立即停止。

所以在这个模式中我看到两个缺点: - 服务器端的等待线程 - 它们消耗服务器资源,因此限制了服务器吞吐量 - 如果服务器线程不等待超时的答案,那么客户端应该重复使用请求并花费大量流量。

解决此类问题的最佳做法是什么?

P.S:忘记提及两个设备应尽可能平稳,快速地交换数据。

1 个答案:

答案 0 :(得分:2)

您需要使用C2DM http://android-developers.blogspot.com/2010/05/android-cloud-to-device-messaging.html

当消息需要从A发送到B时 - A应该连接到服务器并且根据数据种类/数量 - 服务器将通过C2DM推送数据或者告诉设备B返回并获取数据。

无论如何,我会将数据存储在服务器上。如果推送失败 - 您可以重试它。无需重新发明轮子。大多数问题/问题已在C2DM中解决