创建服务端

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 服务器相关推荐

  1. Esp8266进阶之路10 【小实战下篇】Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。(带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  2. Esp8266进阶之路⑨ 【小实战上篇】Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。(带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  3. win7连接sftp_Windows 7下 搭建 基于 ssh 的sftp 服务器

    Windows  xp 下 搭建 基于ssh 的sftp 服务器,服务器端可以用freesshd,F-secure server等,filezilla server不可用,之前傻乎乎的用filezil ...

  4. 基于mosquitto的MQTT服务器---SSL/TLS 单向认证+双向认证

    配置单/双向认证 1.生成证书 使用如下shell 来生成证书: # * Redistributions in binary form must reproduce the above copyrig ...

  5. 在windows平台搭建基于nginx的直播服务器

    1.nginx简介 Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功 ...

  6. xubuntu 搭建基于 gitolite 的 git 服务器

    搭建一个支持repo管理的android镜像,repo工具是基于git服务器,实践git 服务器的安装. Git 服务器的选择 git服务器有多个选择,gitolite,gitosis,gerrit, ...

  7. 自建git服务器 ssh,搭建基于SSH的Git服务器

    之前的一直使用的git作为版本控制工具 最早是同事本地搭建的git服务器保管代码 后来使用的是github私有仓库,保管代码,可以很方便的进行代码审查工作 最近心血来潮,自己尝试搭建,不算太难,小结一 ...

  8. 微信小程序连接自搭建emq(emqx)的MQTT服务器

    总体和连接阿里云物联网差不多,步骤如下: 去Github下载MQTT.js 库:一开始没注意,搞了很久,还把项目下下来自己编译,各种报错,最终也编译出来了,可后来发现其实有现成的单文件可用的,http ...

  9. 搭建基于springboot的FTP服务器

    引言 最近有一个在集成系统上提供1G以上文件下载的功能,还要提供文件的展示功能和删除的操作,因为常规的文件流速度慢并且容易断掉因此我们采用FTP的方式,系统架构如下图所示,这里我们采用的ftp框架是a ...

最新文章

  1. 每个程序员都应该学习使用Python或Ruby
  2. 如何开始你的CTF比赛之旅
  3. rapidxml修改节点的值
  4. 开服侠显示服务器已停止,蜘蛛侠:极限(已关服)无法连接服务器是什么原因...
  5. 计算机视觉编程——图像到图像的映射
  6. csgo服务器linux云崖居,CSGO修改地图天气背景指令
  7. 215. 数组中的第K个最大元素 BFPRT最牛解法
  8. 业务流程图6个图例_史上最全PID图例攻略!
  9. C语言 · 9-1九宫格
  10. php mssql 分页SQL语句优化 持续影响
  11. 以接口请求的方式,解决移动端页面中字体文件过大的问题
  12. mac拼音输入法下面不显示汉字
  13. 关于在谷歌浏览器,vue-video-player 实现断点续播,currentTime不生效问题
  14. 物理机安装esxi系统
  15. 无边的爱浸湿了我的心
  16. [任务书+论文+PPT+源码]基于Android与多媒体的英文学习APP的设计与实现
  17. 2016 GDMS全球数字营销峰会在沪胜利召开
  18. 如何将QRcode二维码的定位标做成圆形
  19. Quantopian教程系列三
  20. Java入土---面向对象(OOP)

热门文章

  1. 编写一个程序,清除用户输入字符串中的空格符并将之输出。
  2. 文档处理 - PowerPoint演示文稿
  3. getClass 方法
  4. 详解网络基础知识:IP地址、子网掩码、网关
  5. Ajax学习:Ajax优缺点
  6. C/C++术语中英文对照
  7. IOS开发中委托代理(degegate)的理解和使用示例
  8. uvw对位平台,halcon联合c#编程,供学习的朋友参考
  9. 雷达坐标系之间的转换
  10. 哪个项目管理工具好用到哭?JIRA VS 华为软件开发云