最近需要用到MQTT和 Websockets来发布一些数据,碰到一些问题,记录下来,以供有需要的人少走弯路,同时自己也做一个笔记方便以后查阅。
开始用了 erlang 和rabbitmq-server,装完后,配置了MQTT,测试可以正常使用,但是在配置websockets的时候,发现有个服务一直启动不了,手动启动后,一会又自动关闭了。为此,在网上查了很多资料,大都说的是云里雾里的,尝试多次也没有解决问题,果断放弃。
后来请教高人推荐使用mosquitto,这个软件之间没接触过的,尝试安装了下,很简单。
下面说下步骤:
1.软件安装,很简单,直接“下一步”,“下一步”完成安装,
PS:这里注意下,安装的时候,尽量放在根目录下,比喻C:\mosquitto\ 或者自己新建一个文件,文件夹名字中间不要有空格,文件夹名字中间不要有空格,文件夹名字中间不要有空格,否则后面服务起不来。结尾我会提供软件下载地址。
2.开启服务,“我的电脑”右键→“管理”→“服务”中找到”Mosquitto Broker“,在属性中设置启动方式为”自动“,然后启动服务。
3.添加用户和密码。打开安装目录,这里以 C"\Mosquitto\ 为例,直接”运行“里输入”cmd“打开一个窗口,然后用 ”CD..“推出到 C盘根目录,然后 ”cd mosquitto“
用户名 admin 密码 123456789
输入命令 ” mosquitto_passwd -c pwfile.example admin “ 然后输入2遍密码,完成账户和密码添加。这里注意 使用 ”-c” 参数会清空之前的账户,如果想保留之前的账户,就使用这个命令。” mosquitto_passwd pwfile.example admin “ 这样会保留之前的账户。
4.简单测试下mqtt是否成功
打开第一个具有管理员权限的cmd窗口输入“mosquitto.exe -c mosquitto.conf” 来启动服务
打开第二个具有管理员权限的cmd窗口输入“mosquitto_sub -u admin -P 123456789 -t 'admin/topic' -v ” 来订阅消息。
打开第三个具有管理员权限的cmd窗口输入“mosquitto_pub -u admin -P 12345 -t 'admin/topic' -m 'mqtt测试' ”
此时,如果第二个窗口能显示 admin/topic mqtt测试 就说明 MQTT服务正确。
5.配置websockets服务,这是用来发布网页的。
打开配置文件 mosquitto.conf .找到如下位置,添加内容。
# Security 下添加
allow_anonymous false
password_file C:\mosquitto\pwfile.example
# PSK based SSL/TLS support 下添加
#MQTT协议
port 1883
protocol mqtt
#websockets协议
listener 1884 0.0.0.0
protocol websockets
socket_domain ipv4
listener 1887 ::
socket_domain ipv6
protocol websockets
在添加websockets协议的时候,查阅了大量资料,发现很多都是重复抄袭,根本没有验证过,所以他们的方法添加后,mqtt就启动不起来了。后来仔细阅读配置文件说明,发现还需要设置ipv4和ipv6 才行,以上代码亲测可开启websockets服务。
6.重新服务,Mosquitto Broker
7.用MqttBox 软件测试 WS 是否发布成功 ws://127.0.0.1:1887 用户名 admin 密码123456789
以上内容经过测试有效,可以说全网仅此一份,最全的配置方法。
软件百度网盘下载地址链接:https://pan.baidu.com/s/18dQ1wzCKNttRAMQMPxdRYQ?pwd=cv7b
提取码:cv7b
本文暂时没有评论,来添加一个吧(●'◡'●)