http://blog.csdn.net/linux_dream_2015/article/details/50482436
2016
MQTT开发文档
首先,我们简单的提一下mqtt是什么;MQTT(Message Queuing TelemetryTransport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。
上面的这些语言都太官方了,我觉得总结一句话就是:连上mqtt之后,服务器那边就可以在你不断的情况下给你推送数据,并且实时性比较好;
现在就让我们来总结一下我们所使用的mqtt到底是怎么工作的,方便以后查阅的时候少走弯路。
流程图:
一、既然要使用官方提供的mqtt协议,那么就必须导入官方给出的jar包我们使用的是IBM公司提供的jar包。
二、既然要让它一直在后台运行,则必须通过服务来是这个操作符合我们的要求,为啥用服务这个就不需要我多说了啥。
既然是链接前后台的服务器,那么链接的状态可能要分很多种,例如:
switch (connectionStatus)
{
case INITIAL:
status = "Please wait";
break;
case CONNECTING:
status = "Connecting...";
break;
case CONNECTED:
status = "Connected";
break;
case NOTCONNECTED_UNKNOWNREASON:
status = "Not connected - waiting for network connection";
break;
case NOTCONNECTED_USERDISCONNECT:
status = "Disconnected";
break;
case NOTCONNECTED_DATADISABLED:
status = "Not connected - background data disabled";
break;
case NOTCONNECTED_WAITINGFORINTERNET:
status = "Unable to connect";// 无线网断开之后就提示这个信息
break;
}
就会有以上的六种状态信息;链接的状态是通过发送广播的形式发送的:
(1)、断开链接的广播:
connectionStatus = MQTTConnectionStatus.NOTCONNECTED_USERDISCONNECT;
// inform the app that the app has successfully disconnected
broadcastServiceStatus("Disconnected");
(2)、尝