发送数据从服务器到特定的Android设备
我是Android的新手,所以我正在寻找最好的方法发送(网络服务)text/data
到一个特定的android device
一次(每次到另一个用户)。 的步骤是:发送数据从服务器到特定的Android设备
- web服务从所述应用程序接收JSON,登录的用户在一个时间(非常简单) 那些;
- 服务器处理收到的数据并将其发送到一个特定的用户\设备。每次服务器收到数据时,它都会将消息传递给其他用户。
- 目前用户是Android应用程序所有者。下一步 - 用户可以使用另一个平台的应用程序,我在服务器上注册什么样的设备发送/应该接收数据。
- 如果用户离线,则应从等待列表中删除该消息,并且必须将其发送给在线的其他用户。
我的主要问题是定义如何向特定用户发送数据 - 通过ID\username
,设备ID,其他? 我试图练习GCM,但它似乎不完全是我正在寻找的,因为我打算使用相同的服务器不仅发送数据到Android设备,而是发送到iPhone/Windows以及。 谢谢。
没有办法直接从你的服务器联系设备
- 设备可能无法访问
- 在运营商围墙花园设备,也没有外面的IP地址(几乎总是)
您唯一的解决方案就是云消息传递。另外,您可以实现如下因素架构:
- 所有设备都有唯一的ID与普通interwals
- 设备轮询服务器,看看是否有适合他们
如果你喜欢“下线” - 模式,你可以考虑消息到期(例如,你的投票interwal是5分钟,所有消息过期10分钟内)
谢谢。关于“必须拥有Google帐户”的另一个问题 - 以任何方式跳过它? – InnaZis
当然。如果你不使用GCM,那么你的用户不需要谷歌帐户。 –
对于android,你应该使用GCM。对于其他平台,他们应该拥有自己的Push Messaging API。
因此,当手机注册GCM时,您将得到一个将与您的服务器通信的句柄。当你将这个句柄存储在数据库或其他东西中时,还要保存这种手机(Android,iOS等)。
当您想要通知用户时,请检查它是哪种商店,并为不同的平台实施不同的协议。
可能有一些图书馆将这个摘要也删除
但我不知道任何
。
编辑:我已经发现了一些
您可能要检查Urban Ship(商业),PushSharp服务器端库,让您发送推送通知到很多平台或又和替代:StackMob。只要谷歌更多的选择,如果既不请你。
我明白了,谢谢。我能否避免使用关于“用户必须拥有Google帐户”的字词?有很多用户谁没有... – InnaZis
我相信,没有谷歌帐户,你得到了非常有限的使用手机。例如,你不应该能够安装应用程序,以便你的用户永远不会得到你的应用程序,对吧? (我假设一个普通用户,而不是开发人员或黑客)。 –
gcm也可用于iphone,但我不确定有关Windows手机。 – meh
据我所知,移动设备必须包含Google帐户?这可能会限制Google帐户的非所有者。 – InnaZis