src/sample/XXX.Plugin.MQTTServer/StartTask/MQTTServerTask.cs

(开头部分) 7KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using MQTTnet;
using MQTTnet.Client.Receiving;
using MQTTnet.Protocol;
using MQTTnet.Server;
using System.NetPro;
using System.Text;

namespace XXX.Plugin.MQTTServer.StartTask
{
    /// <summary>
    /// MQTTClientTask
    /// </summary>
    public class MQTTServerTask //: IStartupTask
    {
        public MQTTServerTask()
        {
        }

        public int Order => 0;

        public void Execute()
        {
            var optionsBuilder = new MqttServerOptionsBuilder()
                         .WithDefaultEndpointReuseAddress()
                         .WithDefaultEndpointPort(1883)
                         .WithConnectionValidator(
                          c =>
                          {
                              //比对连接的账户密码与配置是否匹配
                              //c.ClientId //针对于clientid做校验
                              var currentUser = new { UserName = "netpro", Password = "netpro" };

                              if (currentUser == null)
                              {
                                  c.ReasonCode = MqttConnectReasonCode.BadUserNameOrPassword;
                                  c.ReasonString = $"用户不合法";
                                  Console.WriteLine($"用户不存在");
                                  return;
                              }

                              if (c.Username != currentUser.UserName)
                              {
                                  c.ReasonCode = MqttConnectReasonCode.BadUserNameOrPassword;
                                  c.ReasonString = $"用户不合法";
                                  Console.WriteLine($"用户不存在");
                                  return;
                              }

                              if (c.Password != currentUser.Password)
                              {
                                  c.ReasonCode = MqttConnectReasonCode.BadUserNameOrPassword;
                                  c.ReasonString = $"用户不合法";
                                  Console.WriteLine($"密码错误");
                                  return;
                              }

                              c.ReasonCode = MqttConnectReasonCode.Success;
                              Console.ForegroundColor = ConsoleColor.DarkGreen;
                              Console.WriteLine($"客户端[{c.ClientId}]验证通过");
                              Console.ResetColor();
后面还有 92 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。