MQTTnet入门(一) - 创建最简易的MQTT服务器

无人久伴 提交于 2020-01-03 13:23:21

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了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!