- 浏览: 7251141 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
MQTT的学习研究(十)【转】mosquitto——一个开源的mqtt代理
MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议,适用于一些条件比较苛刻的环境,进行低带宽、不可靠或间歇性的通信。值得一提的是mqtt提供三种不同质量的消息服务:
- “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
- “至少一次”,确保消息到达,但消息重复可能会发生。
- “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
下面是比较详细的介绍链接。
MQ 遥测传输 (MQTT) V3.1 协议规范
http://www.ibm.com/developerworks/cn/webservices/ws-mqtt/index.html
而mosquitto是一个开源broker,并且支持MQTTv3.1,支持客户端的验证。
mosquitto包括服务端和客户端。
mosquitto_pub 客户端可发布一条消息到指定主题:
用法:
mosquitto_pub [-d] [-h hostname] [-i client_id] [-I client id prefix] [-p port number] [-q message QoS] [--quiet] [-r] { -f file | -l | -m message | -n | -s} [-u username [-P password] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] -t message-topic
选项:
-d, --debug
开启debug选项
-f, --file
把一个文件的内容做为消息的内容发送。经测试,支持txt文件,不支持doc等其他形式文件。
-h, --host
说明所连接到的域名,默认是localhost
-i, --id
客户端的ID号,如果没有指定,默认是mosquitto_pub_加上客户端的进程id,不能和--id_prefix同时使用。
-I, --id-prefix
指定客户端ID的前缀,与客户端的进程ID连接组成客户端的ID,不能喝--id同时使用。
-l, --stdin-line
从总段读取输入发送消息,一行为一条消息,空白行不会被发送。
-m, --message
从命令行发送一条消息,-m后面跟发送的消息内容。
-n, --null-message
发送一条空消息。
-p, --port
连接的端口号,默认是1883.
-P, --pw
指定密码用于代理认证,使用此选项时必须有有效的用户名。
-q, --qos
指定消息的服务质量,可以为0,1,2,默认是0.
--quiet
如果指定该选项,则不会有任何错误被打印,当然,这排除了无效的用户输入所引起的错误消息。
-r, --retain
如果指定该选项,该条消息将被保留做为最后一条收到的消息。下一个订阅消息者将能至少收到该条消息。
-s, --stdin-file
从标准输入接收传输的消息内容,所有输入做为一条消息发送。
-t, --topic
指定消息所发布到哪个主题。
-u, --username
指定用户名用于代理认证。
--will-payload
如果指定该选项,则万一客户端意外和代理服务器断开,则该消息将被保留在服务端并发送出去,该选项必须同时用--will-topic指定主题。
--will-qos
指定Will的服务质量,默认是0.必须和选项 --will-topic同时使用.
--will-retain
如果指定该选项,则万一客户端意外断开,已被发送的消息将被当做retained消息。必须和选项 --will-topic同时使用.
--will-topic
指定客户端意外断开时,Will消息发送到的主题。
sub_client客户端订阅一个或多个主题的消息:
用法:
mosquitto_sub [-c] [-d] [-h hostname] [-i client_id] [-I client id prefix] [-k keepalive time] [-p port number] [-q message QoS] [--quiet] [-v] [ -u username [-Ppassword] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] -t message topic ...
命令:
mosquitto_sub 订阅到主题,接收到消息时打印
选项:
-c, --disable-clean-session
禁止'clean session'选项,即如果客户端断开连接,这个订阅仍然保留来接收随后到的QoS为1和2的消息,当改客户端重新连接之后,它将接收到已排在队列中的消息。建议使用此选项时,客户端id选项设为--id
If using this option, it is recommended that the client id is set manually with --id
-d, --debug
开启debug选项
-h, --host
说明所连接到的域名,默认是localhost
-i, --id
客户端的ID号,如果没有指定,默认是mosquitto_pub_加上客户端的进程id,不能和--id_prefix同时使用。
-I, --id-prefix
指定客户端ID的前缀,与客户端的进程ID连接组成客户端的ID,不能喝--id同时使用。
-k, --keepalive
给代理发送PING命令(目的在于告知代理该客户端连接保持且在正常工作)的间隔时间,默认是60s
-p, --port
说明客户端连接到的端口,默认是1883
-P, --pw
指定密码用于代理认证,使用此选项时必须有有效的用户名。
-q, --qos
指定消息的服务质量,可以为0,1,2,默认是0.
--quiet
如果指定该选项,则不会有任何错误被打印,当然,这排除了无效的用户输入所引起的错误消息。
-t, --topic
指定订阅的消息主题,允许同时订阅到多个主题
-u, --username
指定用户名用于代理认证。
-v, --verbose
冗长地打印收到的消息。若指定该选项,打印消息时前面会打印主题名——“主题 消息内容”,否则,只打印消息内容
--will-payload
如果指定该选项,则万一客户端意外和代理服务器断开,则该消息将被保留在服务端并发送出去,该选项必须同时用--will-topic指定主题。
--will-qos
指定Will的服务质量,默认是0.必须和选项 --will-topic同时使用.
--will-retain
如果指定该选项,则万一客户端意外断开,已被发送的消息将被当做retained消息。必须和选项 --will-topic同时使用.
--will-topic
指定客户端意外断开时,Will消息发送到的主题。
报文种类
1.连接请求(CONNECT)
当一个从客户端到服务器的TCP/IP套接字连接被建立时,必须用一个连接流来创建一个协议级别的会话。
2.连接请求确认(CONNECTACK)
连接请求确认报文(CONNECTACK)是服务器发给客户端,用以确认客户端的连接请求
3.发布报文(PUBLISH)
客户端发布报文到服务器端,用来提供给有着不同需求的订阅者们。每个发布的报文都有一个主题,这是一个分层的命名空间,他定义了报文来源分类,方便订阅者订阅他们需要的主题。订阅者们可以注册自己的需要的报文类别。
4.发布确认报文(PUBACK)
发布确认报文(PUBACK)是对服务质量级别为1的发布报文的应答。他可以是服务器对发布报文的客户端的报文确认,也可以是报文订阅者对发布报文的服务器的应答。
5.发布确认报文(PUBREC)
PUBREC报文是对服务质量级别为2的发布报文的应答。这是服务质量级别为2的协议流的第二个报文。PUBREC是由服务器端对发布报文的客户端的应答,或者是报文订阅者对发布报文的服务器的应答。
6.发布确认报文(PUBREL)
PUBREL是报文发布者对来自服务器的PUBREC报文的确认,或者是服务器对来自报文订阅者的PUBREC报文的确认。它是服务质量级别为2的协议流的第三个报文。
7.确定发布完成(PUBCOMP)
PUBCOMP报文是服务器对报文发布者的PUBREL报文的应答,或者是报文订阅者对服务器的PUBREL报文的应答。它是服务质量级别为2的协议流的第四个也是最后一个报文。
8.订阅命名的主题(SUBSCRIBE)
订阅报文(SUBSCRIBE)允许一个客户端在服务器上注册一个或多个感兴趣的主题名字。发布给这些主题的报文作为发布报文从服务器端交付给客户端。订阅报文也描述了订阅者想要收到的发布报文的服务质量等级。
9. 订阅报文确认(SUBACK)
当服务器收到客户端发来的订阅报文时,将发送订阅报文的确认报文给客户端。一个这样的确认报文包含一列被授予的服务质量等级。被授予的服务质量等级次序和对应的订阅报文中的主题名称的次序相符。
10. 退订命名的主题(UNSUBSCRIBE)
退订主题的报文是从客户端发往服务器端,用以退订命名的主题。
11. 退订确认(UNSUBACK)
退订确认报文是从服务器发往客户端,用以确认客户端发来的退订请求报文。
12. Ping请求(PINGREQ)
Ping请求报文是从连接的客户端发往服务器端,用来询问服务器端是否还存在。
13. Ping应答(PINGRESP)
Ping应答报文是从服务器端发往Ping请求的客户端,对客户端的Ping请求进行确认。
14. 断开通知(DISCONNECT)
断开通知报文是从客户端发往服务器端用来指明将要关闭它的TCP/IP连接,他允许彻底地断开,而非只是下线。如果客户端已经和干净会话标志集联系,那么所有先前关于客户端维护的信息将被丢弃。一个服务器在收到断开报文之后,不能依赖客户端关闭TCP/IP连接。
转自
http://www.cnblogs.com/aaronwxb/archive/2012/07/20/2601509.html
发表评论
-
TestNG简单的学习(十三)TestNG中Junit的实现
2013-12-04 09:00 3287TestNG和junit的整合 ... -
TestNG简单的学习(十二)TestNG运行
2013-12-03 09:08 51445文档来自官方地址: ... -
TestNG简单的学习(十一)TestNG学习总结
2013-12-03 09:08 13994最近一直在学习关于TestNG方面的知识,根 ... -
TestNG简单的学习(十)TestNG @Listeners 的使用
2013-12-03 09:07 8624TestNG官方网站: http://testng.or ... -
TestNG简单的学习(九)TestNG Method Interceptors 的使用
2013-12-03 09:07 2654TestNG官方网站: http://testng ... -
TestNG简单的学习(八)TestNG Annotation Transformers 的使用
2013-12-03 09:07 2757TestNG官方网站: http://testng.or ... -
TestNG简单的学习(七)TestNG编程方式运行
2013-12-02 09:22 2396TestNG官方网站: http://testng.or ... -
TestNG简单的学习(六)测试工厂注释的使用
2013-12-02 09:22 2713TestNG官方网站: http://testng.or ... -
TestNG简单的学习(五)参数化测试数据的定制
2013-12-02 09:22 2641TestNG官方网站: http://testng.or ... -
TestNG简单的学习(四)测试方法通过名称名称依赖实现
2013-12-02 09:21 2032TestNG官方网站: http://testng.or ... -
TestNG简单的学习(三)测试方法通过测试分组依赖实现
2013-12-02 09:21 2765TestNG官方网站: http://testng.or ... -
TestNG简单的学习(二)参数化测试并发且多方法测试方法判定
2013-11-29 15:35 3635TestNG官方网站: http://testng.or ... -
TestNG简单的学习(一)类和方法级别@Test的区别
2013-11-29 15:31 9379TestNG官方文档的地址: http://testng ... -
Feed4Junit的简单使用(七)Feed4TestNg
2013-11-29 13:35 6081在Feed4Junit主要针对junit实现的 ... -
Feed4Junit的简单使用(六)数据来特定格式文件
2013-11-29 12:29 2687Feed4Junit官方地址: http://da ... -
Feed4Junit的简单使用(五)数据来自动态约束数据
2013-11-29 12:29 2562Feed4Junit官方地址: http://datab ... -
Feed4Junit的简单使用(四)数据来自定义数据源
2013-11-28 14:09 3039Feed4Junit官方地址: http://databe ... -
Feed4Junit的简单使用(三)数据源来自数据库
2013-11-28 13:58 3097Feed4Junit官方地址: http://databe ... -
Feed4Junit的简单使用(二)数据源来自文件
2013-11-28 13:50 4521Feed4Junit官方地址: http://datab ... -
Feed4Junit的简单使用(一)
2013-11-28 13:47 2158Feed4Junit官方地址: http://databe ...
相关推荐
它还包括一个C和C ++客户端库,以及用于publi Eclipse Mosquitto的mosquitto_pub和mosquitto_sub实用程序Mosquitto是MQTT协议版本3.1和3.1.1的服务器的开源实现。 它还包括一个C和C ++客户端库,以及用于发布和订阅...
Mosquitto是一个开源(BSD许可证)的消息代理,实现MQTT(消息队列遥测传输)协议版本3.1.1。 MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议,适用于一些条件比较苛刻的环境,进行低...
用java写的mqttbroker,实现mqtt中转通信,与mosquitto一样的功能 代码简洁明了,可以多次开发,方便部署至各种服务器 包非常小,仅仅3.24MB
mqtt.js库,下载后可以用找我要源码和压缩文件(mqtt.min.js),有问题随时请教
Mosquitto 是 5.0、3.1.1 版服务器的开源实现。 和 MQTT 协议的 3.1。它还包括一个 C 和 C++ 客户端库
mosquitto+gmssl编译,利用国密算法,加密ssl通道,建立国密的MQTT消息通道。不再使用国外算法,是加密通道国密化的必备方式
MQTT mosquitto客户端Java库
亲测有效,测试MQTT(mosquitto)中间件服务器的好工具。觉得好用的给个好评,点个赞,谢谢!
支持mqtt ws的mosquitto程序文件。Eclipse Mosquitto is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 3.1 and 3.1.1. Mosquitto is lightweight and is suitable...
找遍整个网络,发现所有的发布和订阅客户端都是使用的java,php或安卓,这对C++程序员伤不起,于是花了两天时间研究源代码,写了这个demo,和mosquitto_pub.exe的功能一样,网络唯一,对研究MQTT协议的C++程序员很...
windows编译的mosquitto(mqtt),可以直接下载使用。
一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制...
使用一个开源的技术来与MQTT通信,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 1)附件C#代码全开源,所有代码公开,不使用第...
一个开源的MQTT消息代理服务,它提供了一种轻量级MQTT协议的发布/订阅消息传输方式的服务。可广泛应用于物联网(IoT)、移动应用、车载系统等场景 可以使用Mosquitto自带的命令行工具mosquitto_sub和mosquitto_pub作为...
Android推送方案分析(MQTT、XMPP、GCM).doc Android推送服务(GCM) .doc GCM:入门.doc Mosquitto简要教程(安装&使用).doc 开源broker软件mosquitto(mqtt v3.1支持协议).doc 采用MQTT协议实现Android消息推送.doc
Eclipse蚊子Mosquitto是MQTT协议的版本5.0、3.1.1和3.1的服务器的开源实现。 它还包括一个C和C ++客户端库,以及用于发布和订阅的mosquitto_pub和mosquitto_sub实用程序。链接有关MQTT的更多信息,请参见以下链接: ...
EMQTT(http://emqtt.io/)是目前全球物联网市场排名第一的开源MQTT消息服务。全球市场(印度、北美、欧洲、中国) 累计4000+用户,1000万线MQTT连接部署。中国市场部分物联网公司,包括智能硬件、智能家居、移动消息、...
Mosquitto是MQTT协议版本3.1和3.1.1的服务器的开源实现。 它还包括一个C和C 客户端库,以及用于发布和订阅的mosquitto_pub和mosquitto_sub实用程序。
mqtt支持ws的mosquitto工具和node测试Demo;该压缩包已包含了所有需要的DLL,上一次资源中缺少部分DLL,mosquitto在一些电脑上不能运行。测试方法:mosquitto -c mosquitto.conf -v,正常开启后会显示websocket 已...
实现MQTT协议转到ModbusTCP slave设备