以下有两大服务器实例,服务器开发商不同,但是运行的代码大致相同
apolloMQTT
创建服务器实例
参看:Getting Started Guide
在 CMD 命令窗口输入 apollo create mybroker ,当然 mybroker 这个名字可以随便起。
然后查看 mybroker 可以发现里面包含有很多信息,其中etc\apollo.xml文件下是配置服务器信息的文件,
etc\users.properties文件包含连接MQTT服务器时用到的用户名和密码,可以修改原始的admin=password,
可以接着换行添加新的用户名密码。
bin:保存与该实例关联的执行脚本。
etc:保存实例配置文件
data:保存用于存储持久消息的数据文件
日志:保存旋转日志文件
tmp:保存在代理运行之间安全删除的临时文件
打开cmd,运行 apache-apollo-1.7.1\bin\mybroker\bin\apollo-broker.cmd run 开启服务器
一切照这个搞:https://blog.csdn.net/qq_37838223/article/details/80495220
EMQTT
C:\mqtt\emqttd-windows7-v2.3.9\emqttd\bin>emqttd console初始化启动代理
关于阿里云服务器启动emqttd报计算机丢失MSVCR120.dll.问题;直接在本地电脑上的Windows/System32
的目录下查找msvcr120.dll文件复制进服务器里就能运行了。
(1)emqttd服务启动:emqttd start
(2)emqttd服务停止:emqttd stop
(3)emqttd服务卸载:emqttd uninstall
修改Emqtt服务的用户密码:
修改连接用户名和密码
修改1----emqttd\etc下的emq.conf文件
mqtt.allow_anonymous = false
修改2---emqttd\etc\plugins下的emq_auth_username.conf文件
auth.user.1.username = username
auth.user.1.password = password
登录
http://localhost:18083/
用户名为admin密码为public
修改密码后网页登陆到开启
1. 登陆后选择 ---- Plugins
2. 找到emq_auth_username
3. start ?-- ?修改密码成功
QoS设计
使用QoS 0的情况
在你的发动端和接收端具备一个完整的或基本可靠的连接。一个典型场景是使用有线网连接broker和测试版客户端或者是前端平台。
你不怎么关心是否会有一两个数据包丢失。一般是在数据不怎么重要,或者发送周期比较短暂的情况下,这种情况下丢帧是无所谓的。
你无须任何消息队列。消息队列只在当QoS为1或2,并且持久会话的客户端掉线时产生。
使用QoS 1的情况
你需要获得每一条消息,并且消息重复发送对你的使用场景无影响。最常用的QoS就是1级,因为它能保证消息至少送达一次。当然了,你的程序必须能够接受重复的消息并可以相应地进行处理。
你无法接受QoS为2的资源开销。当然了QoS为1时的消息传递速度要比QoS为2时快得多。
使用QoS 2的情况
仅收到一次消息对你的应用来说很重要。一般是用在重复的消息会对你的应用或订阅者产生危害的情况下。你应该意识到QoS 2会带来相对较高的资源开销,以及相对较慢的传输速度。
QoS 1 和 QoS 2 的队列
所有以1和2级别发送给掉线设备的消息将会存储起来,直到设备再次可用。但是队列只在客户端使用持久会话时才会产生。