GCM Java服务器示例

13

GCM已被弃用。请使用https://firebase.google.com/docs/cloud-messaging。 - AlikElzin-kilaka
2个回答

35

最简单的方法是使用 gcm-server.jar(您可以从这里获取)。

然后,发送GCM消息所需的代码将如下所示:

Sender sender = new Sender(apiKey);
Message message = new Message.Builder()
    .addData("message", "this is the message")
    .addData("other-parameter", "some value")
    .build();
Result result = sender.send(message, registrationId, numOfRetries);

我该如何通过配置IP/端口等来设置测试或生产环境? - handicop
@handicop,我不确定你在问什么。GCM没有测试和生产环境的区别(不像苹果推送通知)。Sender类是硬编码为将请求发送到GCM HTTP端点URL。 - Eran
我明白了。我目前正在研究GCM CCS(XMPP),在那里我可以配置终端点。对于CCS,我想我不应该使用gcm-server.jar或Sender类,而是应该看一下GoogleCloudMessaging API。 - handicop
1
如何保持运行以侦听上游消息? - LK Yeung
我在给定的链接中没有找到gcm-server.jar,但是在Maven存储库中找到了:https://mvnrepository.com/artifact/com.google.gcm/gcm-server/1.0.0 - Péter Aradi

-1

我想分享一种更好的方法来确认消息是否已成功发送。我们可以使用 RestTemplateHTTPPost 来实现。

我将展示如何使用 gcm.jar 来完成此操作。

public class GCMJarGCM {
    public static final String GCM_API_KEY = "Get this API key from Google Developer Console";
    public static final String MESSAGE_VALUE = "Hello, Sending Notifications using GCM";    
    public static final String MESSAGE_KEY = "message";
    public static final String REG_ID = "This you'll get once you register on GCM";

    public static void main(String[] args) throws IOException {
        Sender sender = new Sender(GCM_API_KEY);

        ArrayList<String> devicesList = new ArrayList<String>();
        devicesList.add(REG_ID);

        Message message = new Message.Builder().timeToLive(30)
                .delayWhileIdle(true).addData(MESSAGE_KEY, MESSAGE_VALUE).build();

        MulticastResult result = sender.send(message, devicesList, 1);
        sender.send(message, devicesList, 1);
        System.out.println(result.toString());
    }
}

你将会看到以下输出:
MulticastResult(multicast_id=4951949299732552396,total=1,success=1,failure=0,canonical_ids=0,results: [[ messageId=0:1445408305351488%2a748ce7f9fd7ecd ]]

如果你想使用HTTPPost或RestTemplate,那么你需要使用EndPoint:https://android.googleapis.com/gcm/send


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接