MQTTnet入门(一) - 创建最简易的MQTT服务器
前言
最近工作中需要用到MQTT通信,考虑到使用场景、成本和拓展性的问题,经过一番比较决定采用MQTTnet来自行搭建小型的MQTT服务。之前也没有接触过MQTT服务器的开发,且该库在国内的资料不是很多,所以决定一边开发一边编写该系列的学习笔记。
MQTTnet简介
MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker).
MQTTnet是用于基于MQTT的通信的高性能.NET库。它提供了一个MQTT客户端和一个MQTT服务器。
它是在.Net Core框架下开发的,因此支持跨平台运行,
更加具体的介绍就不在这里描述了,直接在该开源项目在Github上的主页阅读原版的介绍吧。
跳转至 MQTTnet Github
创建简易的MQTT服务器Demo
创建.Net Core项目
创建一个基于.Net Core的控制台程序。
如果没有找到该项请翻页至最底部,在线安装.Net Core框架。
引用MQTTnet库
在NuGet包管理器中在线搜索MQTTnet库,下载之。
编写Demo程序并运行
最精简的MQTT服务器其实只需要三步:创建、启动、关闭,因此我们暂不考虑打印信息、客户端验证等功能,只编写这三部的代码即可。
using MQTTnet;
using MQTTnet.Server;
using System;
namespace MQTTnet
{
class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
// 利用MqttFactory创建MQTT服务器
IMqttServer mqttServer = new MqttFactory().CreateMqttServer();
// 采用异步方式启动服务(使用默认的服务器启动配置)
await mqttServer.StartAsync(new MqttServerOptions());
Console.WriteLine("按任意键退出程序...");
Console.ReadLine();
// 异步关闭MQTT服务
await mqttServer.StopAsync();
}
}
}
编译运行之。
到这里,一个最简易的MQTT服务就已经完成了。黑窗口中只有一句冷冰冰的“按任意键退出程序…”,但该服务以及可以被订阅和发布topic了。
来源:CSDN
作者:猿长大人
链接:https://blog.csdn.net/lgj123xj/article/details/103816554