mosquitto使用与常用配置

为了方便演示,我这里就用windows环境下安装的mosquitto进行操作,操作方式和linux系统下是一样的。

一、windows安装mosquitto

  1. 下载mosquitto
    mosquitto官网:https://mosquitto.org/download/

    下载完成后,双击安装即可

  2. 安装完成后的文件目录

  3. 添加环境变量

  4. 配置Mosquitto账号密码
    在cmd中输入

# 用户名
mosquitto_passwd -c pwfile 用户名

# 密码
mosquitto_passwd -c pwfile bees

mosquitto使用

在Windows PowerShell中执行一下命令

# 启动服务器
.\mosquitto.exe -c mosquitto.conf -v

# 订阅者
.\mosquitto_sub.exe -t "temp"

# 发布者
.\mosquitto_pub.exe -t "temp" -m "aaaaaaaaa"
  1. mosquitto服务器使用

  2. mosquitto订阅者使用

  3. mosquitto发布者使用

  4. 常用选项

  • -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消息发送到的主题。

三、mosquitto常用配置

在mosquitto.conf文件中更改默认配置

# 允许匿名用户
#allow_anonymous true

# 绑定ip和端口
#listener 1883 192.168.2.100
#listener 1883 0.0.0.0

# 允许的最大连接数,-1表示没有限制
#max_connections -1

注意:‘bind_address’和‘port’已经过期,需要使用listener

常见问题

  1. 默认端口被占用

    解决办法
    1)查找被占用的端口

    // 查找使用的端口
    netstat -ano
    // 查找指定的端口
    netstat -ano |findstr 1883
    

    如下图所示:

    2)停用端口

    // 停用端口
    taskkill -PID 4916 -F
    // 查看占用此端口的进程,在任务管理器中强制结束
    tasklist|findstr 4916
    

    如下图所示:

参考文献

mosquitto 用法与简介:http://blog.chinaunix.net/uid-29616823-id-4852120.html
MQTT服务器(Broker) - mosquitto配置文件详解:https://www.cnblogs.com/shuiche/p/12630591.html
Mosquitto 使用说明:https://www.cnblogs.com/yueli/p/7478543.html

posted @ 2022-04-07 11:59  浇筑菜鸟  阅读(5522)  评论(0编辑  收藏  举报