MQTT协议说明及测试

   MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。

MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
2、对负载内容屏蔽的消息传输;
3、使用 TCP/IP 提供网络连接;
4、有三种消息发布服务质量:
“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
“至少一次”,确保消息到达,但消息重复可能会发生。
“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
5、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
6、使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制;

安装测试(使用rsmb测试)

(1)下载并解压rsmb安装包,启动服务

 官网没有找到下载地址,从其他人的博客下载,下载地址:rsmb_1.2.0.zip

解压后进入对于的操作系统目录,我的是woindow,新增文本配置文件broker.cfg

port 1883  #端口号
max_inflight_messages 10  
max_queued_messages 1000  
命令行运行 broker.exe  broker.cfg  显示如下:

20150119 214621.530 CWNAN9999I Really Small Message Broker
20150119 214621.530 CWNAN9997I Licensed Materials - Property of IBM
20150119 214621.530 CWNAN9996I Copyright IBM Corp. 2007, 2010 All Rights Reserved
20150119 214621.530 CWNAN9995I US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
20150119 214621.530 CWNAN0049I Configuration file name is broker.cfg
20150119 214621.530 CWNAN0053I Version 1.2.0, Aug 10 2010 20:40:16
20150119 214621.530 CWNAN0054I Features included: bridge
20150119 214621.530 CWNAN9993I Author: Ian Craggs (icraggs@uk.ibm.com)
20150119 214621.562 CWNAN0014I MQTT protocol starting, listening on port 1883
运行成功,启动监听端口为1883

(2)下载android手机端demo:AndroidPushNotificationsDemo

导入到eclipse中,修改PushService.java中的 MQTT_HOST 和MQTT_BROKER_PORT_NUM常量为推送服务端的IP地址和端口,安装并运行。

运行效果如下:


点击“Start Push Service”按钮即可开启推送服务。这时我们可以看到rsmb的服务日志中打出以下提示: 
20150119 233219.745 CWNAN0033I Connection attempt to listener 1883 received from client tokudu/yzq124 on address 192.168.36.163:37006
其中的“yzq124”就是对应的客户端ID号。 

(3)安装发送服务

  安装wampserver服务,linux系统可以安装apache+php 或lamp,并启动。

下载解压php发送服务端代码:PhpMQTTClient.zip
将解压后的PhpMQTTClient复制到www目录下,修改mqtt配置:etc/config.php

<?php
define('MQTT_SERVER_HOST', '127.0.0.1');
define('MQTT_SERVER_POST', '1883');
?>
修改MQTT_SERVER_HOST、MQTT_SERVER_POST 为MQTT服务地址和端口。

访问:http://127.0.0.1/PhpMQTTClient/


输入客户端ID号:yzq124 和消息内容,点击发送,手机立马收到推送消息。如下图:


rsmb还处在着很多不足,当然我们也可以利用MQTT协议开发出更强大的服务端来替代rsmb,更可以加入队列、缓存等功能进行优化,如开源项目Mosquitto(http://mosquitto.org/)。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值