现在的位置: 首页 > 综合 > 正文

Android上的Mosquitto推送

2014年06月13日 ⁄ 综合 ⁄ 共 1428字 ⁄ 字号 评论关闭

Mosquitto是一个实现了MQTT3.1协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为提供了轻量级数据交换的解决方案。下面记录Mosquitto的搭建步骤。


1.下载Mosquitto

下载地址http://mosquitto.org/download/

解压mosquitto.rar到任意位置,如d:\mosquitto。


2.运行mosquitto.exe,这样,推送服务的服务端就已经准备好了,监听1883端口。运行界面如下图:



3.注册推送服务

打开控制台窗口,运行 d:\mosquitto>mosquitto_sub -t user


这一步的操作是注册推送服务。操作成功后,本窗口没任何反映,但是mosquitto.exe运行界面会多两行信息,如下图:



4.接收消息

再打开另外一个控制台窗口,运行d:\mosquitto>mosquitto_pub -t user 推送消息


这时第一个注册服务的控制台窗口会出现“推送消息”4个字


映射到Android端的话,第一个注册服务的控制台窗口就是Android客户端,第二个控制台窗口就是服务器。


在搭建Android MQTT推送平台之前需要下载下面两个项目:

1.AndroidPushNotificationsDemo

https://github.com/tokudu/AndroidPushNotificationsDemo

2.PhpMQTTClient

https://github.com/tokudu/PhpMQTTClient


接下来开始搭建Android MQTT推送平台

1.推送服务端准备

运行mosquitto.exe,这样,推送服务的服务端就已经准备好了,监听1883端口。

 

2.推送客户端准备

将AndroidPushNotificationsDemo项目导入Eclipse中(File -> Export -> Existing Projects into Workspace)

修改PushService.java中的MQTT_HOST常量为推送服务端的IP地址。

然后启动Android模拟器。

注意:在新版本的Android SDK中可能会遇到java.lang.VerifyError:com.tokudu.demo.PushService错误


原因是发布的时候没有加入wmqtt.jar包,重新配置项目的Java Build Path即可。

运行效果如下图:


点击“Start Push Service”按钮即可开启推送服务,其中的“9774d56d682e549c”就是对应的客户端ID号。


3.发送服务准备

将PHPMQTTClient部署到PHP服务器上,如果你只是需要一个环境来运行php的话,下载AppServ,安装完了将PhpMQTTClient拷贝到\AppServ\www\下即可。

打开对应的URL地址,就可以看到发送服务的界面,实际上就是向对应的推送客户端推送消息。


接着,我们在该界面中填入客户端ID(9774d56d682e549c)和推送消息(hello)并点击“Send Push Message”按钮,服务端就向客户端推送消息。这时客户端就收到刚刚推送的消息,如下图:


也可以在命令窗口中使用mosquitto_pub.exe -q [Qos级别] -t [主题] -m [发布的内容] 进行测试。这个android客户端例子中订阅的topic[主题]是“tokudu/你的deviceID”。


【上篇】
【下篇】

抱歉!评论已关闭.