zoukankan      html  css  js  c++  java
  • Android消息推送之GCM方式(二)

    <声明>

    转载请保留本来源地址:

    http://blog.csdn.net/wzg_1987/article/details/9148023


    上一节讲了GCM方式实现前的一些必要准备工作,和消息接收的实现。

    这一节我们来讲一下发送消息的实现。

    上一节也已经讲了,GCM方式其实并不区分严格的客户端和服务端,对于开发者来说,任何一方都可以是客户端或者服务端,只要搭建的环境满足两个端的要求。也就是说,对于用户来说,可以既是发送方也可以是接收方。这样,GCM方式也就不只是可以用来推送广告了,同样也可以拿来做即时聊天。但限于GCM的种种缺陷,用来做即时聊天并不是最好的方式。(对于消息推送的各种方案对比和选择,可以浏览我的另一篇博文http://blog.csdn.net/wzg_1987/article/details/9150945

    首先,你需要导入4个包,如果你已经在下载了GCM的服务包(下载方式见上一篇准备工作相关内容),在sdk安装目录/extrats/google/gcm文件夹下的gcm-server项目中,将lib文件夹里的json-simpleXX.jar,junit.jar,mockito-all-XX.jar和dist文件夹里的gcm-server.jar加到你的项目里。junit那个可以不用,它是gcm代码内部做单元测试使用到的。

    然后,我们写一个main函数来执行发送一个消息:

    public static void main(String[] args) {
    		Sender sender = new Sender(apiKey);
    		Message message = new Message.Builder().addData("mine", "test2").build();
    		Result result = null;
    		try {
    			result = sender.send(message, deviceRegId, 5);
    			
    			System.out.println(result.getMessageId());
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}


    其中,apiKey是你在谷歌api控制台页面生成的一个字符串(在上一节有讲到),用来验证消息发送方的合法性的。

    deviceRegId是由客户端生成。在客户端完成注册后,调用GCMRegistrar.getRegistrationId()得到,并应该发送给服务器保存起来。

    就这么简单,还可以使用send的其它重载方法,给多个注册id发送消息。

    以上是服务端发送消息的简单实现。



    客户端代码:http://download.csdn.net/detail/wzg_1987/5662225

    服务端代码:http://download.csdn.net/detail/wzg_1987/5669419

  • 相关阅读:
    php redis操作
    textarea 文本框根据输入内容自适应高度
    ThinkPHP5 微信接口对接公共类
    ThinkPHP5 excel 导入/导出
    NGUI 学习使用
    Unity3d 背景、音效 播放 简单demo
    Unity3D教程:制作与载入AssetBundle
    BuildPipeline.BuildAssetBundle 编译资源包
    C# 如何将对象写入文件
    unity3d IO操作
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3162987.html
Copyright © 2011-2022 走看看