第五例:MQTT服务端及客户端学习

一、需要准备的工具如下:

(1)、下载Mosquitto(MQTT的代理,也可以用IBM的ISMB)
http://mosquitto.org/download/

(2)、下载AndroidPushNotificationsDemo
https://github.com/tokudu/AndroidPushNotificationsDemo

(3)、下载PhpMQTTClient
https://github.com/tokudu/PhpMQTTClient/archive/master.zip

本人使用环境是windows,所以下载的环境是windows版本的。在安装mosquitto中,提示下载一些dll复制放到mosquitto目录下面。

第五例:MQTT服务端及客户端学习_第1张图片

二、客户端:导入jar包(AndroidStudio)

1、把wmqtt.jar复制到工程的libs目录下.

2、右键点击新黏贴的jar,在弹出菜单中点击Add As Library.

3、选择你要导入到的那个module(在AndroidStudio中相当于Eclipse中的project),如果当前只是一个项目,下拉框中除了app也没有其他的内容,那么直接点击ok确认。

4、这样jar就被添加到项目中来了。

三、客户端:实现

第五例:MQTT服务端及客户端学习_第2张图片

四、操作

更改自己的host文件localhost 为对应的IP

因为没有使用PHP服务端,只能windows作为测试,所以使用:mosquitto -v 启动mosquitto监听1883的默认端口。客户端点击Start Push service时,服务端收到如下日志

第五例:MQTT服务端及客户端学习_第3张图片

如果启动时,出现无法监听1883端口,可能该端口被占用。

处理情况如下:

1.查看指定端口的占用情况
C:\>netstat -aon|findstr "9050"

  协议    本地地址                     外部地址               状态                   PID

  TCP    127.0.0.1:9050         0.0.0.0:0              LISTENING       2016

P: 看到了吗,端口被进程号为2016的进程占用,继续执行下面命令: (也可以去任务管理器中查看pid对应的进程)

2.查看PID对应的进程
C:\>tasklist|findstr "2016"

 映像名称                       PID 会话名              会话#       内存使用
 ========================= ======== ================
  tor.exe                     2016 Console                 0     16,064 K
P:很清楚吧,tor占用了你的端口。

3.结束该进程

C:\>taskkill /f /t /im tor.exe

在启动一个命令界面,给客户端发送消息

在客户端上收到

相关工具及代码下载:

http://download.csdn.net/detail/android_9527/9186465

相关参考链接:

http://blog.csdn.net/lee4755026/article/details/9699713

你可能感兴趣的:(android事例)