2

我有一个使用 spring 框架运行的 java 服务器。现在我必须开发一个 GCM 服务来将数据从服务器发送到 Android 应用程序。

我在 Internet 上看到了一些教程,它们都在 php 脚本中实现了这个服务。我想知道是否可以在带有 spring 的 java 服务器中使用它们。

我知道我可以将代码重写为 Java,但我没有太多时间,因为这是大学的工作,所以我不想浪费太多时间重写所有这些......

所以我想知道是否可以添加这些 php 脚本,如果可以,我该怎么做?

4

3 回答 3

3

即使您将 Java 服务器与一些发送 GCM 消息的 PHP 代码接口,您仍然必须将注册 ID 和通知有效负载传递给该代码。gcm-server.jar简单地使用谷歌提供的不是更容易吗?

使用gcm-server.jar,您需要发送 GCM 消息的代码就像这样简单:

Sender sender = new Sender(apiKey);
Message message = new Message.Builder()
    .delayWhileIdle(true)
    .addData("key1", "value1")
    .addData("key2", "value2")
    .build();
Result result = sender.send(message, registrationId, numOfRetries);

如果您希望处理错误响应,您应该检查结果实例以查看消息是否被 GCM 服务器成功接收,如果没有,发生什么错误。

您必须实现的唯一另一件事是一些 servlet,它接受来自您的 Android 应用程序的注册 ID 并将它们存储在您的数据库中。也许您可以为该部分使用现有的 PHP 代码(您不需要 PHP 代码和 Java 代码之间的任何接口)。

于 2013-07-03T20:07:19.557 回答
0

你可以从你的java代码执行外部程序

您将不得不以某种方式来回传递数据。读/写标准输入和标准输出可能

也许这会有所帮助:Execute external program in java

于 2013-07-03T19:38:42.710 回答
0

是的你可以。他们有用纯 Java 编写的 PHP、JavaScript 甚至 Python 的解释器。对于 PHP,一种这样的产品是Caucho Quercus

于 2013-07-03T19:48:04.203 回答