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

  • 相关阅读:
    jquery操作select(取值,设置选中)
    jQuery懒加载插件 – jquery.lazyload.js简单调用
    js获取URL中的参数
    数据结构之队列C++版
    数据结构之堆栈java版
    数据结构之堆栈C++版
    c++操作符重载
    QT状态机
    c++/c关于函数指针
    学习Qt的一点小感想
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3162987.html
Copyright © 2011-2022 走看看