mqtt 服务器 哪个好 activemq rabbitmq mosquitto

mqtt 服务器 哪个好 activemq rabbitmq mosquitto,第1张

1、 下载mosquitto安装文件()
2、 找到相应系统的安装文件安装,如果不想做任何设置直接在服务里启动就行。
3、配置文件
如果需要配置一些用户名、密码、用户权限的参数,则需要修改安装目录下的mosquittoconf文件
下面来说说我用到的一些参数吧:
①用户密码: #password_file pwfileexample 后面跟着是用户密码配置文件,需写上绝对路径并且路径不带空格
②创建用户密码:打开doc窗口,进入mosquitto安装目录,运行mosquitto_passwd -c pwfileexample userName 回车,然后输入密码(密码输入两遍后,在该文件里会自动加密密码)
生成的文件内容格式例如:
userName:$6$Ls7JYQTdn9xagJJ2$zngeT758n1Wn1hnVLjFdK2cHb6lcmI5CMrMTNZe2SqkUj0fBgKts62gvlyWYwdY3/WArx/SAtFRKlvKKnHRCUg==
userName2:$6$bymgVcrtj+7wj8mR$nq1atPD3nreRgA6gDbDjfbUGZIlrmenOcWrXMoneBp+zmAxnOybqJvrBZboxX1XXPnz/TKZwz9aKQJ72zJym5A=
③如果想再增加用户,则执行mosquitto_passwd -u pwfileexample userName2即可
④用户权限:#acl_file aclfileexample 后面跟着是用户权限配置文件,需写上绝对路径并且路径
文件内容格式为:
user userName
/etc/ldsoconfd
mosquittoconf
/usr/local/lib/python26/site-packages ( mosquittopy )
/usr/local/bin
vi /etc/sysconfig/iptables
/usr/local/src/mosquitto-113/lib/python
make install
ldconfig
不改configmk里面的东西
需要安装
yum -y install patch make gcc gcc-c++ gcc-g77 flex bison
centos56下 yum -y install gcc automake autoconf libtool make
yum -y install openssl openssl-devel vim-minimal
这里为只读
topic read 主题
user userName2
这里为可读可写
topic 主题
topic #(或+)表示可以读写任何主题
到这里用户密码及权限已配置完成,订阅和发布的时候加上用户名及密码即可验证:
例如:订阅
client = new MqttClient("tcp://127001:1883","java_client0000000000");
// 回调处理类
Myback callback = new Myback();
clientsetCallback(callback);
// 创建连接可选项信息
MqttConnectOptions conOptions = new MqttConnectOptions();
conOptionssetCleanSession(false);
conOptionssetUserName("userName");
conOptionssetPassword("pwd"toCharArray());
// 连接broker
clientconnect(conOptions);
clientsubscribe("主题");
}
发布:
MqttClient client = new MqttClient("tcp://127001:1883","mqttserver-pub");
MqttTopic topic = clientgetTopic("主题");
MqttMessage message = new MqttMessage(topicgetName()getBytes());
messagesetQos(1);
MqttConnectOptions options = new MqttConnectOptions();
optionssetUserName("userName");
optionssetPassword("pwd"toCharArray());
clientconnect(options);
topicpublish(message);
}
即可验证!

MQTT 协议 因为其轻量、灵活等特点成为了当今世界上最受欢迎的物联网协议,它已经广泛应用于车联网、智能家居、物流、即时聊天应用和移动消息推送等领域,连接了数以亿计的设备,并且每时每刻都有无数设备开始使用和接入 MQTT 协议。MQTT 协议为这些设备提供了稳定、可靠的通信基础,这些设备庞大的接入数量也向 MQTT 协议规范提出了挑战, MQTT 50 的诞生便是为了更好地满足这一需求。

MQTT(消息队列遥测传输)最初由 IBM 于上世纪 90 年代晚期发明。它最初的用途是将石油管道上的传感器与卫星相链接,所以 MQTT 从诞生之初就是专为受限设备和低带宽、高延迟或不可靠的网络而设计,它使用了发布订阅模型,在空间和时间上解耦了消息的发送者与接收者,并且基于 TCP/IP 提供稳定可靠的网络连接,拥有非常轻量的报头以减少传输开销,支持可靠消息传输,可以说天生就满足了物联网场景的各种需求。在 MQTT 311 发布并成为 OASIS 标准的四年后,MQTT 50 正式发布,这是一次重大的改进和升级,它的目的不仅仅是满足现阶段的行业需求,更是为行业未来的发展变化做了充足的准备。2019 年 3 月,MQTT 50 成为了新的 OASIS 标准。

面对迅速增长的设备数量和层出不穷的需求,OASIS MQTT 技术委员会需要从繁杂的需求中提取出通用部分,将其纳入标准规范,并且尽可能不增加开销或降低易用性,在不增加不必要的复杂性的前提下提高性能和易用性。

最终,OASIS MQTT 技术委员会为 MQTT 50 添加了大量的全新功能与特性,50 成为 MQTT 有史以来变化最大的一个版本。在这里,我们将列举一些比较重要的特性:

完整的新属性列表包含在协议标准的附录C,您可以访问以下网址了解详情: >最近在着手研究使用网页控制硬件的交互过程,发现mqtt协议有很多种语言的封装,整个思路也很清晰,就是一个客户端进行发布和订阅+服务器中间代理的过程,于是开始学习使用MQTT框架搭建交互平台。
客户端使用了MQTTjs,服务器使用mosca(基于nodejs)。

QoS在MQTT中有(摘自 MQ 遥测传输 (MQTT) V31 协议规范 ):

MQTTjs只是支持了MQTT协议,并没有支持QoS,也就是说,只支持最低级别的“至多一次”(QoS0)。

在MQTT协议中,一个MQTT数据包由:固定头(Fixed header)、可变头(Variable header)、消息体(payload)三部分构成。
这里只了解消息体,固定头和可变头并不需要我们手动写。
payload消息体包含CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRIBE四种类型的消息:

(1)Connect    与服务器建立连接。
(2)Disconnect    与服务器断开TCP/IP会话。
(3)Subscribe    订阅。
(4)UnSubscribe    取消订阅。
(5)Publish    发送消息请求,发送完成后返回应用程序线程。
二、实现(具体的API稍后呈现)

MQTT-SN的架构如图1所示。有3种类型的MQTT-SN组件:MQTT-SN客户端、MQTT-SN网关、MQTT-SN转发器。MQTT-SN客户端使用MQTT-SN协议连接到MQTT-SN网关,再连接到MQTT服务端。MQTT-SN网关可以集成到MQTT服务端里。如果是做为独立的网关,则MQTT服务端和MQTT-SN网关间将采用MQTT协议,它的主要功能就是MQTT和MQTT-SN之间的转换。
当客户端所在的网络无法直接连接到网关时,客户端也可以通过转发器来存取网关。转发器将它在无线网络侧所接收到的MQTT-SN侦进行简单封包,然后原封不动地发送给网关;相反的,它将从网关侧接收到的侦解封,然后同样原封不动地发送到客户端。
基于网关在MQTT和MQTT-SN间转发所起的作用,我们可以区分出2种类型的网关:透明网关和集聚网关。

对于每个连接的MQTT-SN客户端,透明网关将会和MQTT服务端建立并维护一个MQTT连接。该MQTT连接将会单独为端到端通信保留,而且对于客户端和服务端间的消息交换是透明的。有多少MQTT-SN客户端连接到网关,在网关和服务端之间就有多少MQTT连接。透明网关在两协议间将扮演语法翻译器的角色。因为MQTT-SN客户端和MQTT服务端间的所有消息交换是端到端的,所以服务端可以向客户端提供其实现的所有功能和特性。
虽然和集聚网关比起来,透明网关的实现比较简单,但是它要求服务端支持为每个活动的客户端保持一个单独的连接。一些MQTT服务端实现可能在能支持的并发连接数上有所限制。

不同于每个连接的客户端都有一个MQTT连接,集聚网关将只有一个到服务端的MQTT连接。MQTT-SN客户端到集聚网关的所有信息交换将只到网关。由网关决定哪些信息将进一步传递到服务端。虽然集聚网关的实现比透明网关更复杂,但它在拥有大量传感器的无线传感网络中是非常有用的,因为它减少了服务端必须并发支持的MQTT连接数。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12725165.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存