将数据从服务器发送到特定的Android设备

时间:2012-10-31 12:56:01

标签: android

我是Android新手所以我正在寻找最佳方法,一次text/data(网络服务)发送server到一个特定android device(每次都是另一个用户)。 步骤是:

  1. Webservice从应用程序,登录用户接收json 在一段时间(非常简单);
  2. 服务器处理收到的数据并将其发送给一个特定的用户\设备。每次服务器收到数据时 将消息发送给另一个用户。
  3. 目前用户是Android应用程序所有者。下一步 - 用户可以使用另一个平台应用程序,我在服务器上注册了什么 发送/应该接收数据的设备类型。
  4. 如果用户处于离线状态,则应从等待列表中删除该消息,并且必须将该消息发送给另一个在线用户。
  5. 我面临的主要问题是如何定义如何将数据发送给特定用户 - ID\username,设备ID,其他? 我试图练习GCM,但它似乎不是我正在寻找的,因为我打算使用相同的服务器不仅将数据发送到Android设备,还发送到iphone / windows。 谢谢。

2 个答案:

答案 0 :(得分:3)

对于android,你应该使用GCM。对于其他平台,他们应该自己拥有Push Messaging api。

因此,当手机向GCM注册时,您将获得一个手柄,您将与服务器通信。当您将此句柄存储在数据库或其他内容中时,还要保留手机的类型(Android,iOS等)。

当您想要通知用户时,请检查它是哪种商店,并为不同的平台实施不同的协议。

可能有一些图书馆也将此摘要但我不知道任何

编辑:我找到了一些

您可能需要检查Urban Ship(商业),PushSharp服务器端库,以便将推送通知发送到许多平台,或者替代:StackMob。如果你不讨好,只需谷歌获取更多选项。

答案 1 :(得分:1)

无法直接从您的服务器联系设备

  • 设备可能无法访问
  • 设备在运营商围墙花园中,没有外部IP地址(几乎总是)

您唯一的推送解决方案是云消息传递。或者,您可以实现以下架构:

  • 所有设备都有唯一ID
  • 设备使用常规interwals轮询服务器以查看是否有适合他们的内容

如果您想要“离线”模式,您可以考虑邮件过期(例如,您的民意调查间隔为5分钟,因此所有未在10分钟内检索到的邮件到期)