MQTT 是一个基于发布/订阅模式的消息传输协议。它具备轻量级、开放、简单,易于实现,通讯带宽要求低等特色。这些特色使得它对机器与机器的通讯(M2M)以及物联网应用(IoT)来讲是很好的选择。它还被应用到手机APP和Web应用中。 浏览器
客户端/服务器模式 vs 发布/订阅模式服务器
传统的网络通讯模式几乎都是基于客户端/服务器模式的:客户端直接和一个服务端创建链接,通讯来获取数据,数据源和数据目的地双方直接链接。好比在Web应用程序中,浏览器直接和Web服务器经过HTTP协议通讯,浏览器须要知道服务器的IP和端口号。网络
需求项目 | 实际使用 | 其它替代品 |
---|---|---|
MQTT服务器软件 | mosquitto工具 |
/测试 |
公网服务器 | 搬瓦工VPS,Ubuntu系统,带一个IPv4地址 | 阿里云,腾讯云等 |
远程登陆软件 | FinalShell | putty等 |
一、安装 ui
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa #添加源到软件仓库 sudo apt-get update #更新软件仓库列表 sudo apt-get install mosquitto #安装mosquitto
二、试运行阿里云
sudo service mosquitto status #查看运行状态 sudo service mosquitto start #启动服务 sudo service mosquitto stop #中止服务
三、添加和修改配置spa
sudo service mosquitto stop #首先中止服务 #用户的局部配置文件放在: /etc/mosquitto/conf.d/目录下,而且这个目录下的全部以.conf后缀的文件都将被mosquitto做为配置文件,在启动时加载。 #在/etc/mosquitto/conf.d目录下,新建myconfig.conf配置文件 #在其中输入以下内容 #------------------------------------------- # 关闭匿名访问,客户端必须使用用户名 allow_anonymous false #指定 用户名-密码 文件 password_file /etc/mosquitto/pwfile.txt #--------------------------------------------
四、建立一个MQTT服务器帐户命令行
假设用户名为:user1 在命令行运行:mosquitto_passwd -c /etc/mosquitto/pwfile.txt user1 回车后连续输入2次用户密码便可
五、从新启动mosquitto代理
sudo service mosquitto start #启动服务
在App Store下载MQTTool工具。
订阅一个消息,主题为test
发布主题为test的消息,点击发送后,点底部的Subscribe,看是否收到了推送。