-
在eclipse把安卓端项目导入androidpn-client 需要修改配置文件,指定服务器的地址,raw文件夹的配置文件修改xmppHost的地址,端口号不需要改,默认是5222 10.0.2.2是模拟器的地址 其他东西不需要改了,运行会发现报错,找不到类,项目是引入asmack.jar包用来处理xmpp协议的,但是该jar包放的目录是lib,而不是libs,自己添加一个目录放进去就可以了,重新构建路径build—path,重新运行项目就正常了 运行的程序自己随便点击界面就明白了,不说多。 注意观察打印的日志,会有登录成功的信息,查看网页服务端,就会发现有一个用户在线的,也多了一个会话session连接,并且数据库也添加了一条记录。 推送是不需要用户自己注册用户名的,所以是客户端自动生成的 发推送消息可以自己在网页服务端自己试试就明白了,客户端手机是能收到这个消息的。 到这里,服务器端和客户端都搭建好了。 跟极光推送比较,是比极光推送设置简单的,但也可以推送到所有设备,和指定的设备,通过设备的用户名。 自己打开两个模拟器观察就明白了。 后面还有很多功能等待我们完善,目前还没有写代码。后面通过分析源码,写代码修复bug 总结和概括: 推送平台终于搭建好,这是一个好的开始,虽然功能简单,但背后的功能代码一点都不简单,这是推送最核心的功能,我们添加其他的功能,例如心跳包,离线消息等等查看全部
-
把上节说的软件安装好 下载开源项目的源码 ,通过github搜索androidpn即可 是一个基于xmpp协议的项目,有中文文档,中国人上传的 解压源码,有安卓客户端源码,服务端有三个版本,jetty版,tomcat版,源码版 这里使用的是tomcat版服务端,导入myeclipse中即可,关联tomcat服务器软件,启动tomcat,在浏览器访问测试即可 服务端源码结构:src是java源码目录,采用MVC架构,resources是配置文件目录,webroot目录放的是网页,web-inf目录是其他配置目录; 部署这个项目到tomcat,启动tomcat,然后在浏览器输入localhost:8080即可访问项目首页,刚开始是有错误的,数据库的配置文件还没有设置你的数据库密码,不能为空密码,修改配置文件jdbc.properties里面的数据库名称,数据库用户名和密码即可 自己百度下载查看mysql数据的工具,方便连接查看创建数据库,而不需要通过命令行的方式! 服务器端启动后,就会在数据库创建一个用户表 apn_user,但还没有数据,因为还没有客户端连接查看全部
-
前面的预备知识:socket mina框架 xmpp协议 万事开头难,直接使用现有的开源推送项目,简单快速,功能稳定。 新公司,参加现有项目的开发,要理解现有的代码,所以读懂开源项目代码是非常好的学习方式 二次开发比从头开发更好 android是基于linux开发的 chrome是基于chromium开发的 开源项目选择: android push notification AndroidPN 韩国人写的 这个项目是个半成品,完成了主体功能,遗留一些bug和可扩展的功能,有利于自己的修复bug和学习,发挥空间特别大 开发工具: eclipse myeclipse mysql数据库 tomcat服务器查看全部
-
XML Stanzas 一节内容的意思 客户端需要使用JID作为身份标石 : [user "@"]domain["/"resource] 加域名可以区别重名的用户user,resource可以区分用户登录的场景 通用属性 1 from 判断消息来源,但没有意义,服务器没有使用它,服务器是根据数据来源判断的,主要用于调试说明 2 to 解析JID的消息确定转发给谁 3 type 类型有多种 4 id 唯一标识符 能够确定服务端发送的消息是否发给自己的 stream结构 用于初始化连接,判断是否双方支持xmpp协议 presence结构 表示在线状态 下线:type=”unavailable“ type可选参数 : available subcribe error等等,推送功能暂时不需要订阅和取消订阅状态;show标签可选参数:正在聊天,离开等等;status标签可选参数:正在喝茶等等! message结构 消息封装在<body>标签里面 type的可选参数:normal,chat一对一聊天,groupchat群聊,headline头条内容,error错误; IQ结构 信息查询的意思,<query>标签指定查询的动作 ,例如可以获取联系人列表 jabber:iq:roster 花名册 type标签可选参数,get获取数据 、set设置数据、result响应数据、error发生错误;是不是觉得很类似http协议的get,post请求; 注意get和result的id标签是保持一致的,才能判断响应那个get的请求 登录等等功能都是通过IQ结构实现的 总结: 1 了解xmpp协议概念,设计理念 2 优缺点 3 具体内容,包括理解概念,JID,通用属性,stream,message,IQ等等学习查看全部
-
优点:开放性,标准性,可扩展,跨平台 缺点:数据冗余,不支持二进制数据,查看全部
-
前言-GCM:Google云消息 1.推送:服务器--定向|实时-->客户端(指服务器定向将信息实时发送到客户端的动能) 2.长连接:服务器--始终建立通信连接,没有中断之前,可以随时通信-->客户端(典型范例Socket) 3.短连接:服务器--有数据交互,建立连接,数据发送完毕,断开连接-->客户端(典型范例HTTP) 注意:利用短连接实现的即时通信是伪即时通信,轮询,耗费流量;利用长连接实现的即时通信,推送; 4.推送:服务器<--长连接-->客户端 5.第三方推送平台:极光推送,个推,百度推送,小米推送...(优点:Bug少;开发时间短)查看全部
-
多个接入查看全部
-
Mark查看全部
-
Mark查看全部
-
国内代表性推送平台查看全部
-
XMPP优点查看全部
-
已经明确知道当前读取完成,希望开启一次新的读取,则返回true;当数据并没有读取完成,当下次数据到来时接着进行读取,返回false。查看全部
-
Android推送的开源项目查看全部
-
每个客户端与服务器的连接,服务器都分配一个新线程查看全部
-
socketClient.java: public class SocketClient { /** * @param args */ public static void main(String[] args) { SocketClient client =new SocketClient(); client.start(); } private void start() { BufferedReader inputReader; inputReader=new BufferedReader(new InputStreamReader(System.in)); String inputContent; try { while(!(inputContent=inputReader.readLine()).equals("bye")){ System.out.println(inputContent); } } catch (IOException e) { e.printStackTrace(); } } }查看全部
举报
0/150
提交
取消