zoukankan      html  css  js  c++  java
  • 搭建自己的MQTT服务器

    搭建自己的MQTT服务器

    物联网电子世界

    百家号08-2903:04

    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-devsudo apt-get install uuid-devsudo 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的报文。

  • 相关阅读:
    hibernate_0100_HelloWorld
    MYSQL子查询的五种形式
    JSF是什么?它与Struts是什么关系?
    nop指令的作用
    htmlparser实现从网页上抓取数据(收集)
    The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the
    FCKeditor 在JSP上的完全安装
    Java遍历文件夹的2种方法
    充电电池和充电时间说明
    吃知了有什么好处
  • 原文地址:https://www.cnblogs.com/LiuYanYGZ/p/10191379.html
Copyright © 2011-2022 走看看