当前位置: 首页 > 工具软件 > Mosquitto > 使用案例 >

mosquitto

高山
2023-12-01

模块

* 代理端(中转消息,守护进程) mosquitto
* 发送消息客户端 mosquitto_pub
* 接收消息客户端 mosquitto_sub
* 管理密码文件  mosquitto_passwd

测试

* 先启动服务进程    mosquitto -d
* 订阅某个频道(news)的消息(监听)  mosquitto_sub -t news
* 发送消息(hello)到某个频道(news)    mosquitto_pub -t news -m "hello"
* 可以观察到当mosquitto_pub之后,可以在mosquitto_sub看到刚才发送的消息

配置

* 配置文件路径 /etc/mosquitto/mosquitto.conf
* 启动服务进程mosquitto,除了可能用命令行参数,还要以通过配置文件,配置文件更为详细。
* 可以指定ip地址和端口,还可以使用用户名和密码
* 可以添加加密码证书

案例

使用密码

* 创建只读用户user1和可写用户user2和密码都为user1234
    ** mosquitto_passwd -c /etc/mosquitto/pawd user1     // -c 表示新增一个文件,如果创建第二个用户,不需要-c
    ** mosquitto_passwd /etc/mosquitto/pawd user2 
* 修改配置文件,不允许匿名用户,指定存储用户名和密码的文件路径,和用户读写权限的文件
    ** 创建自己的配置文件, touch /etc/mosquitto/conf.d/my.conf
    ```
        allow_anonymous false
        password_file /etc/mosquitto/pawd
        acl_file /etc/mosquitto/acl
    ```
    ** 创建用户读写权限的文件/etc/mosquitto/acl
    ```
        user user1
        topic read news

        user user2
        topic write news
    ```
* 测试
    ** sudo service mosquitto restart
    ** mosquitto_sub -t news -u user1 -P user1234
    ** mosquitto_pub -t news -m "hello" -u user2 -P user1234

5> 测试:
5.1>  打开两个shell窗口
5.2> 订阅一个主题

# mosquitto_sub -t mqtt

5.3> 在另一窗口推送消息

# mosquitto_pub -t mqtt -h localhost -m "new location“

OK 这时会在订阅窗口看到推送的信息

 

+++++++++++++++====================================++++++++++

mosquitto_sub命令

mosquitto_sub监听指定主题下的消息。
常用参数:

  • -h:连接的服务器
  • -p:连接的端口号(缺省为1883)
  • -u:用户名
  • -P:密码(注意P为大写)
  • -V:协议版本号(注意V为大写)
  • -t:主题名称,可以使用通配符#和+
  • -v:输出主题+监听到的消息(否则仅输出监听到的消息)

例如,以下命令使用用户pi、密码hachina,连接到10.0.1.1051883端口,监听所有的主题,打印出对应的内容:
mosquitto_sub -t "#" -v -u pi -P hachina -h 10.0.1.105

mosquitto_pub命令

mosquitto_pub向指定的主题发送消息
常用参数:

  • -h:连接的服务器
  • -p:连接的端口号(缺省为1883)
  • -u:用户名
  • -P:密码(注意P为大写)
  • -V:协议版本号(注意V为大写)
  • -t:主题名称
  • -m:消息体

例如,以下命令在hello/world主题位置发布消息HELLO, HAChian.io
mosquitto_pub -t hello/world -m "HELLO, HAChian.io" -h 10.0.1.105 -u pi -P hachina

 类似资料: