win10使用node.js搭建mqtt服务器附详细图文攻略

时间:2024-03-25 20:31:55

1.前言

最近刚好看到GitChat mqtt协议快速入门然后就付费学习一下,开始写一下mqtt的一些记录,作为课程的学习记录过程,有需要的可以自己扫下面的码去看一下个人觉得还是不错的讲的挺详细,就是没有一些图片描述或者视频让我这个初次学习node.js的人有些混乱,嘛不过这些问题还好自学没什么太大的难度。虽然之前也学过java的mqtt也同样实现订阅和发布功能但是还是不够稳健需要再补充一些知识。之前是直接把数据能传输然后能实现后就不管了,但是这样貌似还是不太行的,学习需要再继续学习一下。
win10使用node.js搭建mqtt服务器附详细图文攻略
系统:Window10

2.Windows 上安装 Node.js

1、Windows 安装包(.msi)
32 位安装包下载地址 : https://nodejs.org/dist/v4.4.3/node-v4.4.3-x86.msi

64 位安装包下载地址 : https://nodejs.org/dist/v4.4.3/node-v4.4.3-x64.msi

本文实例以 v0.10.26 版本为例,其他版本类似, 安装步骤:

步骤 1 : 双击下载后的安装包 v0.10.26,如下所示:
win10使用node.js搭建mqtt服务器附详细图文攻略
步骤 2 : 点击以上的Run(运行),将出现如下界面:
win10使用node.js搭建mqtt服务器附详细图文攻略
步骤 3 : 勾选接受协议选项,点击 next(下一步) 按钮 :
win10使用node.js搭建mqtt服务器附详细图文攻略
步骤 4 : Node.js默认安装目录为 “C:\Program Files\nodejs” , 你可以修改目录,并点击 next(下一步):
win10使用node.js搭建mqtt服务器附详细图文攻略
步骤 5 : 点击树形图标来选择你需要的安装模式 , 然后点击下一步 next(下一步)
win10使用node.js搭建mqtt服务器附详细图文攻略
步骤 6 :点击 Install(安装) 开始安装Node.js。你也可以点击 Back(返回)来修改先前的配置。 然后并点击 next(下一步):
win10使用node.js搭建mqtt服务器附详细图文攻略
安装过程:
win10使用node.js搭建mqtt服务器附详细图文攻略
检测PATH环境变量是否配置了Node.js,点击开始=》运行=》输入"cmd" => 输入命令"path",输出如下结果:

PATH=C:\oraclexe\app\oracle\product\10.2.0\server\bin;C:\Windows\system32;
C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;
c:\python32\python;C:\MinGW\bin;C:\Program Files\GTK2-Runtime\lib;
C:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files\nodejs\;
C:\Users\rg\AppData\Roaming\npm

我们可以看到环境变量中已经包含了C:\Program Files\nodejs\

检查Node.js版本
win10使用node.js搭建mqtt服务器附详细图文攻略
2、Windows 二进制文件 (.exe)安装
32 位安装包下载地址 : http://nodejs.org/dist/v0.10.26/node.exe

64 位安装包下载地址 : http://nodejs.org/dist/v0.10.26/x64/node.exe

安装步骤

步骤 1 : 双击下载的安装包 Node.exe ,将出现如下界面 :
win10使用node.js搭建mqtt服务器附详细图文攻略
点击 Run(运行)按钮将出现命令行窗口:
win10使用node.js搭建mqtt服务器附详细图文攻略
版本测试
进入 node.exe 所在的目录,如下所示:
win10使用node.js搭建mqtt服务器附详细图文攻略

以上图文来自Node.js 安装配置菜鸟教程

3.下面我们来安装mqtt服务器在node.js中

我们在cmd输入

npm install mqtt --save

node.exe使用npm是不行的具体可以看这篇文章
https://blog.csdn.net/qq_16519957/article/details/86751066
win10使用node.js搭建mqtt服务器附详细图文攻略
那我们如何指定mqtt安装的地方呢?

选择一个地方并创建一个文件夹mqtt然后在命令提示符中切换到你的文件夹
第二步输入npm install mqtt --save
然后我们就可以看到mqtt生成了一个文件夹如下图所示。

win10使用node.js搭建mqtt服务器附详细图文攻略
然后安装好mqtt以后就出现这个文件夹
win10使用node.js搭建mqtt服务器附详细图文攻略
我们都打开看一下里面有什么东西
win10使用node.js搭建mqtt服务器附详细图文攻略

win10使用node.js搭建mqtt服务器附详细图文攻略

4.创建一个mqtt用于测试的客户端

我们来写一个Hello World是的没看错就是Hello World
先创建一个mqttest.js在我们刚才创建的mqtt文件夹内

win10使用node.js搭建mqtt服务器附详细图文攻略
引用mqtt库 ```js var mqtt = require('mqtt') ``` 建立连接从Mosquitto的免费在线 MQTT代理
var client = mqtt.connect('mqtt://iot.eclipse.org')

接下来我们通过捕获 connect 事件以显示Hello world
message将其记录下来

client.on('connect',function()
{
	client.subscribe('presence')
	client.publish('presence','Hello world')
})
client.on('message',function(topic,message)
{
	console.log(message.toString())
	client.end
})

然后我们发送过去在cmd中输入node mqtttest.js就是你创建的文件名

win10使用node.js搭建mqtt服务器附详细图文攻略
然后你成功发送过去以后那边的服务器会给你一个反馈说明你就搭建mqtt成功和连接上别人的免费mqtt服务器。

5.建立持久会话与非持久会话的连接

我们在原有的基础上面修改一些代码
这里我们通过 ClientID 选项指定 Client Identifier
这里clean就是清除用户连接的session
如果clean是true就是持久会话意思就是发送到服务器的时候服务器会先确认他有没有session如果有那么就是上线就是true,非持久会话就是false

var client = mqtt.connect('mqtt://iot.eclipse.org',{
	clientId:"mqtt1",
	clean:false
})

接下来我们通过捕获 connect 事件将 CONNACK 包 Return Code 和 Session Present Flag 打印出来,然后断开连接:

client.on('connect', function (connack) {
    console.log(`return code: ${connack.returnCode}, sessionPresent: ${connack.sessionPresent}`)
    client.end()
})

我们来看一下完整代码:

var mqtt = require('mqtt')
var client = mqtt.connect('mqtt://iot.eclipse.org',{
	clientId:"mqtt1",
	clean:false
})


client.on('connect',function()
{
	client.subscribe('presence')
	client.publish('presence','Hello world')
})
client.on('message',function(topic,message)
{
	console.log(message.toString())
	client.end
})
client.on('connect', function (connack) {
    console.log(`return code: ${connack.returnCode}, sessionPresent: ${connack.sessionPresent}`)
    client.end()
})

有图有真相,下面我们来看一下图

win10使用node.js搭建mqtt服务器附详细图文攻略