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官网最新的版本是151
tar xzvf mosquitto-151targz
第四步:编译
cd mosquitto-151/
make
make install
第五步:启动mosquitto
/mosquitto -v
1535473957: mosquitto version 151 starting
1535473957: Using default config
1535473957: Opening ipv4 listen socket on port 1883
1535473957: Opening ipv6 listen socket on port 1883
这时候mosquitto就会以默认的参数启动。如果需要带配置文件可以修改配置文件mosquittoconf,
启动时候加上参数 -c,
/mosquitto -c mosquittoconf
可以看到,mosquitto监听的端口为1883
这时候我们的MQTT服务器就搭建好了。可找一个mqtt客户端来测试一下。
先发布一个主题“home/garden/fountain/2”
内容是“hello world”
这时候在mosquitto会打印出下面的log
535474247: New connection from 1921681105 on port 1883
1535474247: New client connected from 1921681105 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的报文。
今天在一个技术群中看到有人在讨论这个问题,刚好手头上正在做物联网项目,也遇到这么个问题,只是之前一直在测试阶段,没怎么把这个问题放在心上,断了重新连接就可以了,只是麻烦一点罢了。不过过阵子要出差,后面还要演示,不可能再继续这样一直用SSH连着重新启动各种远程程序,该准备的还是先准备好,以防到时出错,所以刚刚特意就这个问题搜了一下解决方法。
有两种方法:一是用nohup命令,另一种是用screen工具。因为nohup比较方便,所以采用这种方法,关于screen的具体用法,可以参考上面的博文。
当SSH网络断开后,会向该连接相关所有会话进程发一个SIGHUP信号,收到这个信号的进程默认是终止运行,nohup命令的作用就是让进程不接收到该信号,这样就可以在SSH断开后保证程序继续运行。
物联网卡管理平台实现了物联网卡(13位卡)的流量、短信发送、短信接收、跟踪和查询等功能,用于物联网卡的发行、跟踪、数据统计、大数据分析等功能。现在很多网络设备都会应道物联网卡,例如云打印机云喇叭云扫描q等一些产品,都是要配备物联卡才能使用的,企业跟企业企业跟商户,最基础的通信服务器指令发送接收等,都得靠物联卡。
这个系统必须咨询专业公司如智能客,专业性强的才能管理搭建。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)