Android + PHP 实现 MQTT,附程序Demo下载链接

来源:互联网 发布:新开淘宝网店卖什么好 编辑:程序博客网 时间:2024/06/13 02:27
背景:

最近有个项目要做,Android 开发不熟悉,也是网上各种资源收集终于调试成功。由于资源收集太辛苦,还是自己写下步骤MARK下,以备下次使用,首先Android推送,想到的是MQTT, MQTT基本概念就不描述了,网上可以搜,特点是基于TCP/IP,  提供“至多一次”、“至少一次”、“有且仅有一次”三种级别的消息传输,  小型传输、流量开销少,所以一般做公有云认证用这种方法推送还不错。

本文涉及到的资源可以在以下链接下载

http://download.csdn.net/detail/zaqxsw875/9654104

1. MQTT的简单实现方案:


1.1服务器:可以采用IBM的MQTT服务器RSMB,我用的是rsmb_1.2.0

1.2 客户端:Android 开源代码

1.3 发送服务器:PHP版的发送服务端代码

1.4 测试工具: ia92

2. 实施步骤
2.1 准备工作:
首先,得有一个能运行Android 的环境,我用的是Eclipse,需要有Android 手机一部,有个能够跑PHP的Server,我用的是wamp.这些配置资源需要在网上搜索下载。

下载资源:
可以直接从文章开头提到的连接下载所需资源(Windows 版本),
http://download.csdn.net/detail/zaqxsw875/9654104

2.2  先运行 broker.exe, 我的系统是Windows, 目录在 \rsmb_1.2.0\windows
PS: 如果运行闪退,有可能是1883端口被占用
这时会出现如下画面:


2.3 这时 Broker服务已启动,可以运行wmqttSample.jar 来进行测试, 目录在\ia92\J2SE

双击两次打开两个 wmqttSample窗口,并找到 "Options",修改其中一个 Client Identifier 为 client2.

两个窗口点击 Connect, 第一个窗口 在 Subscribe Topic 输入名称,点击 Subscribe, 在第二个窗口在Topic 输入相同的名称,并且输入发送的内容,点击 Publish.
这时第二个窗口输入的内容被第一个窗口获得。

同时,Broker 会记录监听情况


2.4 如果运行没有问题,可以测试Android DEMO, Github 下载代码如果直接运行,会出现闪退问题,因为没有加载wmqtt.jar文件,在工程根目录下创建"libs"文件夹,把 wmqtt.jar放进去, 在项目属性里,找到 Java Build Path,编译下运行环境即可。 Android 运行效果

如下图所示:






2.5 部署PHP环境,修改 MQTT_SERVER_HOST',为本地IP即可。 输入Android 设备号, 然后输入信息,点击发送,手机则受到推送通知。






3. 小结:
对Android环境不熟悉,在实施过程中遇到不少问题,比如Android 闪退,未安装rsmb前一直测试不成功等,还好问题已经解决。感谢万能互联网。
0 0
原创粉丝点击