ubuntu11.04上搭建Android推送服务器

查阅了一些网上关于Android上实现推送的文章 , 常用的实现方法有:

1.使用android默认C2DM框架

2. APP 保持轮循

3. 采用XMPP协议,自己搭建推送服务器

 

下面介绍一下自己在ubuntu11.04下搭建XMPP推送服务器的方法:

1. 下载Android Push Notification 相关包,包括

androidpn-server-0.5.0-bin.zip
androidpn-demoapp-0.5.0.zip


2. 安装apache2 ,eclipse,android SDK


3. 启动apache服务,并且停止iptables

手动添加iptables规则

Shell代码   收藏代码
  1. socol@socol:~$ sudo vim /usr/bin/iptables-stop.sh  
Shell代码   收藏代码
  1. socol@socol:~$ sudo chmod 750 /usr/bin/iptables-stop.sh  
Shell代码   收藏代码
  1. socol@socol:~$ sudo chown root:root /usr/bin/iptables-stop.sh  

 内容如下:

Shell代码   收藏代码
  1. #! /bin/sh  
  2. # 清空 filter 表格規則(無指定表格,則為 filter 表格)  
  3. iptables -X  
  4.   
  5. # 清空 nat 表格規則  
  6. iptables -t nat -F  
  7. iptables -t nat -X  
  8.   
  9. # 清空 mangle 表格規則  
  10. iptables -t mangle -F  
  11. iptables -t mangle -X  
  12.   
  13. # 指定 filter 表格預設規則  
  14. # INPUT、FORWARD、OUTPUT 皆為放行  
  15. iptables -P INPUT ACCEPT  
  16. iptables -P FORWARD ACCEPT  
  17. iptables -P OUTPUT ACCEPT  

清除防火墙:

Shell代码   收藏代码
  1. socol@socol:~$ sudo /usr/bin/iptables-stop.sh  

 

4. 运行解压后的androidpn-server

Bash代码   收藏代码
  1. socol@socol:~/下载/androidpn-server-0.5.0/bin$ mkdir ../logs  
  2. socol@socol:~/下载/androidpn-server-0.5.0/bin$ ./run.sh  

 

5. 在firefox中输入127.0.0.1:7070,显示设备和推送管理页面

 

 

6. 将androidpn-demoapp导入eclipse中

运行后出现错误:

Java代码   收藏代码
  1. W/Cannot connect to server.( 1052): 0  
  2. W/System.err( 1052): XMPPError connecting to 127.0.0.1:5222.: remote-server-error(502) XMPPError connecting to 127.0.0.1:5222.  
  3. W/System.err( 1052):   -- caused by: java.net.ConnectException: /127.0.0.1:5222 - Connection refused  
 


根据提示 ,修改androidpn-demoapp-0.5.0/res/raw/androidpn.properties:

Java代码   收藏代码
  1. apiKey=1234567890  
  2. xmppHost=10.0.2.2  
  3. xmppPort=5222  
 

7. 在firefox中发送消息:

ubuntu11.04上搭建Android推送服务器

 

8. 模拟器/手机上接受到消息:

ubuntu11.04上搭建Android推送服务器

 

 

androidpn研究成果 http://crking32.iteye.com/blog/1420039

Android实现推送方式解决方案系列  http://www.juapk.com/thread-1004-1-1.html

 

你可能感兴趣的:(android推送)