在物联网通讯中先要解决的就是 通讯协议 的选择。
MQTT无异是目前应用的比较广范的一种。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。
MQTT协议轻量、简单、开放和易于实现,这些特点使它适用范围非常广泛。
在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。
其实,在卫星链路通信传感器、智能家居、及一些小型化设备中已广泛使用。
MQTT采用发布订阅模式,是消息队列中最典型的。
怎么理解发布订阅呢?其实可以简单的用一个例子来说明。
譬如说朋友圈,小搜关注了我的一个朋友(这就是订阅),然后我的朋友发了一条朋友圈(这就是发布),那么所有关注了我这个朋友的所有人(当然也包括小搜我)都会看到TA发的这条朋友圈。
相信大家对这种模式并不陌生。
那么在我们的物联网通讯中, 云端服务器 和线下硬件( 串口服务器 )其实也可以基于这种模式进行开发。
目前提供MQTT的云服务商很多,几 大云 服务商基本上都有提供,费用也各不相同。如果同学们想省去这一块的费用,那么下面小搜就展开讲述一下,如何利用COOLPY7建立自己的MQTT Broker。
COOLPY7是国人开发的一系列基于 Golang 语言的开源 MQTT 消息服务器。
下文主要讲述如何利用COOLPY7搭建MQTT服务器。
首先,我们先去下载COOLPY7,在下载页,我们 Linux 的操作系统进行安装启动演示:
# 下载服务器端 git clone && cd Coolpy7 # 解压文件 unzip go_build_Coolpy7_go_linux.zip # 提权 chmod -R 777 go_build_Coolpy7_go_linux # 启动Coolpy7 启动参数 # l 当前服务Host地址 (默认为:1883即本地1883端口,此参数一般默认即可,无需配置) # a 连接接入调度器最大线程,此值可防止暴力连接攻击,对已连接客户端进行优先保护 (默认值128) ./go_build_Coolpy7_go_linux # 启动成功后会打印如下信息,即说明服务端已正常启动,host于1883端口,请确保相关防火墙配置可用 2018/10/29 12:59:55 Coolpy7 tcp is listening on [::]:1883
- 一般需为程序提权才可以运行Linux服务,指令:chmod -R 777 go_build_Coolpy7_go_linux
好啦,MQTT Broker有了,我们该怎么调试呢?
这里介绍一个小工具mqtt.fx
mqtt.fx是一款小巧的桌面级应用, 可以快速简单的对mqtt协议进行调试和测试。
安装mqtt.fx完毕后,启动,出现以下界面
基本上我们用到的软件部分就是上图箭头所指的几个区域功能。
分别是连接broker,发布者页,订阅者页。下面上个动图看下效果
这期就到这里啦,有问题的同学可以私信我,下一期我们开始要更加深入了,物联网需要用到的知识点很多。持续关注小搜让您对物联网基础技术了解得更完整。