2

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

  1. Webservice从应用程序接收一个json,一次登录的用户(很简单);
  2. 服务器处理接收到的数据并将其发送到一个特定的用户\设备。每次服务器接收到数据时,它都会将消息发送给另一个用户。
  3. 目前用户是安卓应用所有者。下一步 - 用户可以使用另一个平台应用程序,我在服务器上注册发送/应该接收数据的设备类型。
  4. 如果用户离线,则该消息应从等待列表中删除,并且必须发送给另一个在线用户。

对我来说主要的问题是定义如何将数据发送给特定的用户——按ID\username、设备 ID 或其他?我尝试练习 GCM,但它似乎并不完全符合我的要求,因为我计划使用同一台服务器不仅将数据发送到 android 设备,而且还将数据发送到 iphone/windows。谢谢你。

4

2 回答 2

3

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

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

当你想通知用户时,检查它是哪种存储,并针对不同的平台实现不同的协议。

可能有一些库也将它抽象出来,但我不知道

编辑:我找到了一些

您可能想查看Urban Ship(商业)、PushSharp一个服务器端库,让您可以将推送通知发送到许多平台或替代方案:StackMob。如果您都不满意,只需谷歌搜索更多选项。

于 2012-10-31T13:12:24.473 回答
1

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

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

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

  • 所有设备都有唯一的 ID
  • 设备定期轮询服务器以查看是否有适合他们的东西

如果您喜欢“离线”模式,您可以考虑消息过期(例如,您的轮询间隔为 5 分钟,因此所有未在 10 分钟内检索到的消息都过期)

于 2012-10-31T13:12:02.230 回答