2011-09-18 147 views
1

我正在尝试创建一个聊天应用程序。该通信基于RESTful Web服务(泽西岛)。客户端与发送HTTP请求的服务器进行通信。我的问题是如何在没有客户端先发送请求的情况下将消息从服​​务器发送到客户端。我读了关于C2DM通知,我想用这种方式,当客户端从服务器接收到通知时(客户端)必须发送一个请求到服务器以接收数据。我也在考虑使用套接字,但我不知道是否可以使用Rest。我的意思是在服务器端,我还可以使用REST代码使用套接字(套接字在较低级别运行)吗?我使用套接字的唯一方法是使用套接字创建另一台服务器(两台服务器为RESTful和套接字),但这是一个很好的解决方案吗?我也可以把一些服务器代码放在客户端和一些客户端代码在服务器端。它会是正确和有效的吗?你怎么看?哪种解决方案最好?客户端(android)从服务器接收消息(java)

回答

1

您描述的场景听起来对C2DM来说非常理想。如果你建立自己的套接字设置,你将耗尽电池和CPU资源来完成手机已经在做的事情 - 维护一个开放的套接字来接收消息。

C2DM设置起来相对比较简单,而且根据我的经验相当可靠。

这是我看到的是最好的教程:

http://www.vogella.de/articles/AndroidCloudToDeviceMessaging/article.html

但你也需要阅读官方文档:

http://code.google.com/android/c2dm/

您的服务器端代码需要向C2DM服务器发送HTTP请求以向设备发送消息。要告诉它在哪里发送消息,您的服务器需要指定注册ID(代表您在一个特定设备上运行的应用),因此当您的应用在Android设备上设置时,它会向C2DM注册,然后需要发送其C2DM注册ID将被存储到您的服务器上,准备用于发送消息。

+0

@奥利:ü可以上传你已经为C2DM创建,因为我不能够在我的Android应用程序来实现的示范项目。我需要使用PHP服务器。这是非常紧急的。正因为如此,我不能完成我目前的[email protected]如果你可以给我发邮件,那将是有益的。谢谢你的帮助.... – Sumant

相关问题