<声明>

转载请保留本来源地址:

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

最新文章

  1. win32自绘按钮,使用GDI+(二)
  2. 使用Starling 框架时,报错Error: Error #3669: 输入大小错误, 解决方案
  3. dom4j操作xml
  4. Resharper团队协作之TODO
  5. Linux下串口ttyS2,ttyS3不能用的问题解决办法
  6. Table of Contents - MyBatis
  7. 1069: [SCOI2007]最大土地面积 - BZOJ
  8. SQL2012远程连接到SQL2008时的问题:已成功与服务器建立连接,但在登陆过程中发生错误。
  9. Google maps API开发(二)(转)
  10. poj 3287 The Trip, 2007_贪心
  11. mysql性能优化学习笔记(3)常见sql语句优化
  12. [C++]C++中的运行时类型检测
  13. 雷人的一幕:国外的codeproject论坛竟有人发“中文贴”.....
  14. zencart 后台目录产品黄色icon_yellow_on.gif 解决方案
  15. 如何清除jboss缓存
  16. php中$_FILES应用实例
  17. 用mapreduce 处理气象数据集
  18. In action &quot;Setting JDBC driver jar location unix [Set a variable]&quot; (screen &quot;Select a Database [Configurable banner form]&quot;), property &quot;Script&quot;:
  19. 【ABP】工作单元——不进行事物独立执行功能
  20. Azure Ubuntu18.04安装lxde桌面记录,Windows远程连接Ubuntu18.04(Linux)

热门文章

  1. CLR读书笔记——委托
  2. Inno Setup 安装前卸载原程序(转)
  3. 【LeetCode练习题】Gas Station
  4. C Deepin指针
  5. logback.xml配置详解
  6. Android项目 手机安全卫士(代码最全,注释最详细)之十二 设置中心的界面
  7. Swift的初始化方法
  8. 关于Oracle数据库字符集的选择
  9. asp.net cookie的使用.
  10. JDK8环境变量配置相关问题