5

我正在开发一个 Android 应用程序。将有两种类型的用户 - 管理员和客户端。我只想让管理员以纯文本形式发布一些通知,然后将这些通知通知给客户。问题是,我应该使用什么来将通知从管理员转移到客户。我在某处读到,可以借助 Google App Engine 和 Google Cloud Messaging (GCM),但使用 Google App Engine 非常复杂。我可以使用更好的选择吗?

4

5 回答 5

2

Google 应用引擎非常适合您的要求,因为 GCM 推送通知需要某种服务器。作为替代方案,您也可以尝试探索 Parse SDK。

于 2014-04-22T19:24:46.907 回答
1

如果只是,您担心的是您不想沉迷于服务器端编程并且仍然希望在您的应用程序中接收一些字符串作为推送通知,您可以尝试探索一下:

http://framework.realtime.co/messaging/#android

于 2014-04-23T06:57:58.357 回答
1

您可以使用Amazon S3服务。访问此处了解更多信息:http ://aws.amazon.com/s3/

于 2014-04-16T07:39:17.273 回答
1

我认为您的最佳选择确实是Google Cloud Messages。请记住,您实现的任何东西都必须与它非常相似,那么为什么要重新发明轮子呢?

如果您不想使用它,我会想到其他几种可能性(尽管,正如我所说,它们最终会模仿GCM的行为):

  • Socket在客户端实现监听。这样,您首先需要确保每个连接的客户端都需要以某种方式(例如,HTTP POST请求)向您发送一些信号和IP地址,因为您需要知道在哪里连接。这样,每次要发送通知时,您都需要连接到每个设备,通过该设备发送消息Socket并处理超时(例如,如果我尝试发送消息并且连接被拒绝 X 次,我可以考虑它,因为客户端已断开连接)。

  • 实施集中的“董事会”。通过这种方法,客户将连接到一个集中的公告板(例如一个HTTP站点),例如每 30 秒轮询一次,并且只显示新消息。这样,您需要控制已显示的消息并仅显示新消息。这种方法的缺点是,最初需要任何人都可以访问它(即使他们没有使用您的应用程序),但您可以实施一些额外的安全措施来避免它(例如,只允许已注册的客户端发送HTTP POST到远程服务器),否则将它们重定向到错误页面或返回430 Forbidden错误。

如果您最终想尝试一下GCM(这比您想象的要容易),我前段时间写了一个答案,总结了一步一步的指南来实现它。

于 2014-04-16T14:28:38.783 回答
1

如果您阅读分步指南, Google App Engine 会非常简单。

您必须安装maven:休耕这个HOW TO,然后阅读 google 的指南,通过在 中进行一些剪切和粘贴pom.xml,以及 3 个类,您将能够在 4 小时内编写一些 REST Web 服务!

几周前我已经完成了这项工作,复杂的事情是为自动用户身份验证生成 O-AUTH id!最后,您还可以生成瘦 Android 客户端来使用您的服务!

如果你懂java,这一切都会很简单!

这是一个带有应用引擎的简单 Web 服务:

@Api(
    name = "helloworld",
    version = "v1",
    scopes = {Constants.EMAIL_SCOPE},
    clientIds = {Constants.WEB_CLIENT_ID, Constants.ANDROID_CLIENT_ID, Constants.API_EXPLORER_CLIENT_ID},
    audiences = {Constants.ANDROID_AUDIENCE}
)
 public class Greetings {
    public static ArrayList<HelloGreeting> greetings = new ArrayList<HelloGreeting>();

    static {
       greetings.add(new HelloGreeting("ciao world!"));
       greetings.add(new HelloGreeting("addio world!"));
    }

    public HelloGreeting getGreeting(@Named("id") Integer id) {
       return greetings.get(id);
    }
}
于 2014-04-16T07:59:50.563 回答