mqtt 初识
来源:互联网 发布:单片机驱动5v继电器 编辑:程序博客网 时间:2024/05/29 11:53
MQTT是IBM开发的一个即时通讯协议。MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制。Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用。
若初次接触MQTT协议,可先理解以下概念:
【MQTT协议特点】——相比于RESTful架构的物联网系统,MQTT协议借助消息推送功能,可以更好地实现远程控制。
【MQTT协议角色】——在RESTful架构的物联网系统,包含两个角色客户端和服务器端,而在MQTT协议中包括发布者,代理器(服务器)和订阅者。
【MQTT协议消息】——MQTT中的消息可理解为发布者和订阅者交换的内容(负载),这些消息包含具体的内容,可以被订阅者使用。
【MQTT协议主题】——MQTT中的主题可理解为相同类型或相似类型的消息集合。
Mosquitto
是一个实现了MQTT3.1协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为我们提供了非常棒的轻量级数据交换的解决方案。
Mosquitto提供了Windows、Linux以及qnx系统的版本,安装文件可从http://mosquitto.org/files/binary/地址中获取,源码可以从最新的源码可从http://mosquitto.org/files/source/地址中获取。
下载最新版的exe文件
安装后目录
默认端口1883 在.conf文件中可修改
win下测试 开三个
broker服务端
下载RSMB,从IBM官方网站可下载,解压后打开其中的"windows"目录,你会分别发现以下三个可执行文件:
https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=d5bedadd-e46f-4c97-af89-22d65ffee070
- broker.exe : MQTT协议代理网关(不知这样解释是否正确?)
- stdinpub.exe :模拟发布者的客户端程序
- stdoutsub.exe :模拟订阅者的客户端程序
http://download.csdn.net/detail/uniquerhythm/5353124
http://www-01.ibm.com/support/docview.wss?uid=swg24006006
2.1 启动broker.exe,如果后面不跟任何参数,即缺省监听端口是1883。broker.exe后面如果跟一个文件名,则表示此文件是配置文件,broker.exe将根据此配置文件中的参数进行工作。
2.2 启动wmqttSample.jar,命令:
java -jar wmqttSample.jar上述命令,你可以执行多次,分别来模拟多个订阅者与发布者。
通过上图可以看到:
1)broker.exe;
2)发布者,发布的主题为:testtopic;
3)订阅者,其订阅的主题为系统应用信息哦,也就是说我们可以通过一个订阅者来获取broker的运行信息;
4)与5) 普通信息订阅者,其订阅的主题为:testtopic
2.3 在图2中输入一些内容,点击"Publish",普通信息订阅者便可以收到相关信息。
三、其它
3.1 越来越发现,把自己想说的,清楚、简单的写出来,对我来说是件很费力的事情,还得多训练训练;
3.2 摸索了二天,终于有点进展,相关界面如下:
3.3 推送的后台,大家可以搜索phpMqttClient,这也是一个开源项目。我只是在它的基础上,改了下界面,目的是学下bootstrap。
3.4 android、php、前台都是刚刚开始学习,自己的目的就是利用这个业余项目来加深对新语言的掌握。
3.5 我会陆陆续续把这块做完,并写出来!
客户端
java ia92下载地址:
http://download.csdn.net/detail/uniquerhythm/5353124
android
php
- MQTT初识
- mqtt 初识
- 初识MQTT
- MQTT协议初识
- 初识MQTT协议(1)
- 初识MQTT协议(2)
- mqtt
- mqtt
- MQTT
- mqtt
- MQTT
- MQTT
- MQTT
- MQTT
- MQTT
- mqtt
- MQTT
- MQTT
- 【IOS】浅拷贝和深拷贝
- Java类中的常用容器
- 蚁群算法Python实现
- Mysql数据库的索引原理
- 对5个数进行排序,需7次比较的方法
- mqtt 初识
- 《Orange's 一个操作系统的实现》学习笔记--特权级代码段之间的转移(五)
- 单列转行显示
- mingw编译libxml2
- Offending class: javax/servlet/Servlet.class异常
- 几种常见模式识别算法整理和总结
- @QueryParam和@PathParam比较 (2011-12-11 22:39:15)
- 2、spss做均值比较分析
- 分页查询超时问题(1)