Android消息推送有很多种方式,通过百度查询和简单的筛选,最终选择了用MQTT来实现这个功能(以下运行环境为WINDOWS 32系统)
一、软件准备
MQTT:mosquitto-1.3.5-install-cygwin.exe
Android:Eclipse环境直接解压即可
PHP:php-5.6.4-Win32-VC11-x86.zip
Apache:httpd-2.4.10-win32-VC11.zip
VC环境:vcredist_x86.exe
二、安装
(1)安装MQTT
安装MQTT其实很简单,只要简单的直接执行可执行文件即可
测试进入MQTT的根目录 例:D:\Program Files\cygwin\mosquitto 双击mosquitto.exe 打开出现一个命令行窗口 。
命令行窗口出现后不要关掉,如果关掉mosquitto 程序也跟着关掉了。若觉得奇怪直接进入任务管理器查看mosquitto是否运行。
(2)安装Android集成环境
在安装了Java运行环境的前提下解压压缩包可以直接使用。
(3)安装VC11环境只要直接将可执行文件运行即可安装。
(4)Apache安装 Apache 下载后是zip包,解压到后放在合适的位置就可以了,这里我们将它放在C盘的apache24目录;
(5)下载后也是zip包,同样解压到合适位置,我们这里也将其放在C盘的php55目录;
三、配置
mosquitto无需配置,Android运行环境不是我们今天的重点,如果还是不知道的话就直接百度“Java运行环境安装及配置”。
下面主要讲解PHP和Apache环境的配置及整合
参考文献:javascript:void(0)
php.ini;将C:\php和C:\php\ext加入环境变量PATH中;
2.用记事本打开C:\apache24\conf\httpd.conf
修改 37行 ServerRoot "c:/Apache24" => ServerRoot "c:/Apache24"(这里输入的是你解压apache安装包的位置)
#ServerName www.example.com:80 => ServerName www.example.com:80
(去掉前面的#)
DocumentRoot "c:/Apache24/htdocs" => DocumentRoot
"c:/Apache24/htdocs" (这里跟我解压Apache的目录一样,不用改)
<Directory "c:/Apache24/htdocs"> => <Directory
"c:/Apache24/htdocs"> (还是一样不用改)
DirectoryIndex index.html => DirectoryIndex
index.html index.php index.htm (我们添加了index.php
index.htm)
ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/" => ScriptAlias
/cgi-bin/ "c:/Apache24/cgi-bin/" (依然一样不用改)
<Directory "c:/Apache24/cgi-bin"> => <Directory
"c:/Apache24/cgi-bin"> (依然一样不用改)
C:\apache24\conf\httpd.conf 最后一行添加)
让apache支持php
添加 LoadModule php5_module "c:/php55/php5apache2_4.dll" (请确认c:/php55/有php5apache2_4.dll,如果你下载的是我提供的连接肯定是有的)
添加 AddType application/x-httpd-php .php .html .htm
b.告诉apache php.ini的位置
添加 PHPIniDir "c:/php55"
httpd.conf 配置完成,保存httpd.conf 。
3.将apache安装到系统服务中
在cmd中执行:c:\apache24\bin\httpd -k install
4.开启几个常用php扩展,用记事本打开C:\php55\php.ini
修改 721行 将; extension_dir = "ext" => extension_dir = "ext" (去掉extension前面的分号)
修改 873行 将;extension=php_mbstring.dll => extension=php_mbstring.dll(去掉extension前面的分号,这是php多字节字符串扩展)
去掉extension前面的分号)
修改 876行 将;extension=php_mysqli.dll => extension=php_mysqli.dll(去掉extension前面的分号)
启动
启动apache,两种启动方式:1.在windows服务中启动;2.双击c:\apache24\bin\ApacheMonitor.exe启动;
两种启动方式:1.在windows服务中MySQL56启动;2.Mysql Notifier启动。
测试
Http://localhost:8080/index.php
我所认为的难点在于PHP和Apache的配置和整合。所以在这上面花了较多的时间。
四、导入
这样下来所有的软件已经准备好了,由此可以导入代码运行整个项目。
将Android项目 :
导入Eclipse即可运行,注意jar包的位置记得更改,这个工程可能有一些瑕疵。
将PHP项目放在apache的\Apache24\htdocs 我的是D:\httpd-2.4.10-win32-VC11\Apache24\htdocs
五、运行
1、开启mosquitto 方式如上面的测试方法,记住命令行窗口不能关。
2、运行Android程序
3、运行Apache 进入\Apache24\bin 双击
即可运行
4、访问http://localhost:8080/PhpMQTTClient/
5、输入参数
6、完成推送