请选择 进入手机版 | 继续访问电脑版

      如何搭建支持IPv6的MQTT消息队列服务器?

      2018-8-29 12:44| 发布者: admin| 查看: 1244| 评论: 0

      摘要: MQTT协议是广泛应用的物联网协议,使用测试MQTT协议需要MQTT的代理。有两种方法使用MQTT服务,一是租用现成的MQTT服务器,如阿里云,百度云,华为云等公用的云平台提供的MQTT服务,使用公用的MQTT服务器的好处是省事 ...

      MQTT协议是广泛应用的物联网协议,使用测试MQTT协议需要MQTT的代理。有两种方法使用MQTT服务,一是租用现成的MQTT服务器,如阿里云,百度云,华为云等公用的云平台提供的MQTT服务,使用公用的MQTT服务器的好处是省事,但如果仅仅用于测试学习还需要注册帐号,灵活性差些,有的平台还需要付费。另一方法是自己使用开源的MQTT组件来搭建。
      MQTT服务器非常多,如apache的ActiveMQ,emtqqd,HiveMQ,Emitter,Mosquitto,Moquette等等。
      这里介绍的是用轻量级的mosquitto开源项目来搭建一个属于自己的MQTT服务器

      第一步:需要安装一台linux主机,这不多介绍,可以使用真机安装也可以使用虚拟机安装。如果仅仅是自己测试使用都可以。
      第二步:下载mosquitto需要的依赖
      sudo apt-get install libssl-dev
      sudo apt-get install uuid-dev
      sudo apt-get install cmake
      第三步:下载mosquitto并解压,现在mosquitto官网最新的版本是1.5.1
      tar xzvf mosquitto-1.5.1.tar.gz
      第四步:编译
      cd mosquitto-1.5.1/
      make
      make install
      第五步:启动mosquitto
      ./mosquitto -v
      1535473957: mosquitto version 1.5.1 starting
      1535473957: Using default config.
      1535473957: Opening ipv4 listen socket on port 1883.
      1535473957: Opening ipv6 listen socket on port 1883.
      这时候mosquitto就会以默认的参数启动。如果需要带配置文件可以修改配置文件mosquitto.conf,
      启动时候加上参数 -c,
      ./mosquitto -c mosquitto.conf
      可以看到,mosquitto监听的端口为1883.
      这时候我们的MQTT服务器就搭建好了。可找一个mqtt客户端来测试一下。
      先发布一个主题“home/garden/fountain/2”
      内容是“hello world”

      这时候在mosquitto会打印出下面的log
      535474247: New connection from 192.168.1.105 on port 1883.
      1535474247: New client connected from 192.168.1.105 as MQTT_FX_Client (c1, k60).
      1535474247: No will message specified.
      1535474247: Sending CONNACK to MQTT_FX_Client (0, 0)
      1535474307: Received PINGREQ from MQTT_FX_Client
      1535474307: Sending PINGRESP to MQTT_FX_Client
      1535474339: Received PUBLISH from MQTT_FX_Client (d0, q0, r0, m0, 'home/garden/fountain/2', ... (12 bytes))
      1535474367: Received PINGREQ from MQTT_FX_Client
      1535474367: Sending PINGRESP to MQTT_FX_Client
      订阅主题“home/garden/fountain/2”

      可以看到收到了自己发布的消息。
      用wireshark抓包

      可以看到抓到了一个MQTT的publish的报文。

      鲜花

      握手

      雷人

      路过

      鸡蛋

      相关阅读

      最新评论

      全站热门

      QQ|Archiver|手机版|小黑屋|IPv6.la(IPv6技术网) |网站地图

      GMT+8, 2021-9-24 11:57 , Processed in 1.109106 second(s), 23 queries .

      IPv6.la ©版权所有

      © 2021 IPv6.la(IPv6技术网)

      返回顶部