搭建基于 nodejs 的 MQTT 服务器
创建服务端
1.先从初始化一个 package.json 开始。
npm init
2.安装 mqtt 服务器必要依赖项 mosca mqtt
npm install mosca mqtt
3.根目录下创建 mqtt.js 文件,写入以下内容,创建 mqtt 简易服务器。
// MQTT服务端 const mosca = require("mosca")const MqttServer = new mosca.Server({port: 1883
})
MqttServer.on("clientConnected", function(client){// 当有客户端连接时的回调console.log("client connected", client.id)
})/*** 监听MQTT主题消息* 当客户端有连接发布主题消息时*/
MqttServer.on("published", function(packet, client){var topic = packet.topicswitch(topic){case "temperature":console.log("message-publish", packet.payload.toString())// MQTT可转发主题消息到其他主题MqttServer.publish({topic: 'other',payload: 'sssss'})breakcase "other":console.log("message-123", packet.payload.toString())break}
})MqttServer.on("ready", function(){// 当服务开启时的回调console.log("mqtt is running...")
})
创建客户端推送
根目录下创建 publish.js 推送文件,写入以下内容:
// MQTT 客户推送端const mqtt = require("mqtt")
const client = mqtt.connect("mqtt://127.0.0.1:1883") // 连接到mqtt服务器
// 写个定时器每隔3秒定时推送天气信息,此业务可替代为自己的实际需求
setInterval(function(){const value = Math.ceil(Math.random() * 40)client.publish("temperature", value.toString(), {qos: 0, retain: true})console.log("value:", value)
}, 3000)
创建客户端接收
根目录下创建 subscribe.js 接收文件,写入以下内容:
// 客户接收端const mqtt = require("mqtt")
const client = mqtt.connect("mqtt://127.0.0.1:1883") // 指定服务端地址和端口client.on("connect", function(){console.log("服务器连接成功")client.subscribe("temperature", {qos: 1}) // 订阅主题为test的消息
})client.on("message", function(top, message){console.log("当前topic:", top)console.log("当前温度:", message.toString())
})
测试功能
1.启动mqtt服务
node mqtt / node mqtt.js
2.启动publish推送服务
node publish / node publish.js
3.启动subscribe客户接收服务
node subscribe /node subscribe.js
至此,一个基于 nodejs 的简易 mqtt 服务器就搭建完成了。
搭建基于 nodejs 的 MQTT 服务器相关推荐
- Esp8266进阶之路10 【小实战下篇】Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。(带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...
- Esp8266进阶之路⑨ 【小实战上篇】Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。(带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...
- win7连接sftp_Windows 7下 搭建 基于 ssh 的sftp 服务器
Windows xp 下 搭建 基于ssh 的sftp 服务器,服务器端可以用freesshd,F-secure server等,filezilla server不可用,之前傻乎乎的用filezil ...
- 基于mosquitto的MQTT服务器---SSL/TLS 单向认证+双向认证
配置单/双向认证 1.生成证书 使用如下shell 来生成证书: # * Redistributions in binary form must reproduce the above copyrig ...
- 在windows平台搭建基于nginx的直播服务器
1.nginx简介 Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功 ...
- xubuntu 搭建基于 gitolite 的 git 服务器
搭建一个支持repo管理的android镜像,repo工具是基于git服务器,实践git 服务器的安装. Git 服务器的选择 git服务器有多个选择,gitolite,gitosis,gerrit, ...
- 自建git服务器 ssh,搭建基于SSH的Git服务器
之前的一直使用的git作为版本控制工具 最早是同事本地搭建的git服务器保管代码 后来使用的是github私有仓库,保管代码,可以很方便的进行代码审查工作 最近心血来潮,自己尝试搭建,不算太难,小结一 ...
- 微信小程序连接自搭建emq(emqx)的MQTT服务器
总体和连接阿里云物联网差不多,步骤如下: 去Github下载MQTT.js 库:一开始没注意,搞了很久,还把项目下下来自己编译,各种报错,最终也编译出来了,可后来发现其实有现成的单文件可用的,http ...
- 搭建基于springboot的FTP服务器
引言 最近有一个在集成系统上提供1G以上文件下载的功能,还要提供文件的展示功能和删除的操作,因为常规的文件流速度慢并且容易断掉因此我们采用FTP的方式,系统架构如下图所示,这里我们采用的ftp框架是a ...
最新文章
- 每个程序员都应该学习使用Python或Ruby
- 如何开始你的CTF比赛之旅
- rapidxml修改节点的值
- 开服侠显示服务器已停止,蜘蛛侠:极限(已关服)无法连接服务器是什么原因...
- 计算机视觉编程——图像到图像的映射
- csgo服务器linux云崖居,CSGO修改地图天气背景指令
- 215. 数组中的第K个最大元素 BFPRT最牛解法
- 业务流程图6个图例_史上最全PID图例攻略!
- C语言 · 9-1九宫格
- php mssql 分页SQL语句优化 持续影响
- 以接口请求的方式,解决移动端页面中字体文件过大的问题
- mac拼音输入法下面不显示汉字
- 关于在谷歌浏览器,vue-video-player 实现断点续播,currentTime不生效问题
- 物理机安装esxi系统
- 无边的爱浸湿了我的心
- [任务书+论文+PPT+源码]基于Android与多媒体的英文学习APP的设计与实现
- 2016 GDMS全球数字营销峰会在沪胜利召开
- 如何将QRcode二维码的定位标做成圆形
- Quantopian教程系列三
- Java入土---面向对象(OOP)