#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* 版权所有 (c) 2025 WenJY 保留所有权利。
* CLR版本:4.0.30319.42000
* 机器名称:Mr.Wen's MacBook Pro
* 命名空间:Sln.Iot.Business
* 唯一标识:71034873-2FF6-4081-AC87-DFCCCCCF51F2
*
* 创建者:WenJY
* 电子邮箱:
* 创建时间:2025-04-11 16:03:28
* 版本:V1.0.0
* 描述:
*
*--------------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
*
* 版本:V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
using System;
using Microsoft.Extensions.Logging;
using Sln.Iot.Business.@base;
using Sln.Iot.Common;
using Sln.Iot.Config;
using Sln.Iot.Model.dto;
using Sln.Iot.Serilog;
using Sln.Iot.Socket.Adapter;
using TouchSocket.Core;
using TouchSocket.Sockets;
namespace Sln.Iot.Business
{
///
/// 登录指令
///
public class LoginBusiness:BaseBusiness
{
public LoginBusiness(SerilogHelper logger, AppConfig appConfig,StringChange stringChange) : base(logger, appConfig,stringChange)
{
}
///
/// 指令解析
///
///
///
///
///
public override FilterResult BufferAnalysis(ISocketClient client, BufferRequestInfo requestInfo, int bodyLength)
{
var flag = "";
byte[] bDeviceType = new byte[1];
byte[] bDeviceID = new byte[2];
Array.Copy(requestInfo.buffer, 1, bDeviceType, 0, 1);
Array.Copy(requestInfo.buffer, 2, bDeviceID, 0, 2);
flag = base._stringChange.ConverToString(bDeviceType);
flag += base._stringChange.ConverToString(bDeviceID);
string clientIdStr = flag.ToString();
if (clientIdStr.Contains("45"))
{
if (client.Id != clientIdStr)
{
client.ResetId(clientIdStr);
//更新客户端状态
}
}
return FilterResult.Success;
}
///
/// 应答处理
///
///
///
public override void ResponseHandle(ISocketClient client, byte[] buffer)
{
ResponsePack sendResponsePackInfo = new ResponsePack()
{
m_MessageType = 0xA1
};
base.GetMessagePack(ref sendResponsePackInfo,buffer);
base.SendMessageAsync(client, sendResponsePackInfo);
}
}
}