From 0c1214ff480bcb93fda52d11b3b64c05d7c918b5 Mon Sep 17 00:00:00 2001 From: "nodyang@aliyun.com" Date: Sat, 14 Sep 2024 11:20:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E5=85=A5=E5=9B=9E=E8=B0=83=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SlnMesnac.TouchSocket/TcpServer.cs | 40 +++++++++++++++++++----------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/SlnMesnac.TouchSocket/TcpServer.cs b/SlnMesnac.TouchSocket/TcpServer.cs index 8cfa253..2ce92d5 100644 --- a/SlnMesnac.TouchSocket/TcpServer.cs +++ b/SlnMesnac.TouchSocket/TcpServer.cs @@ -34,26 +34,35 @@ using JsonSerializer = System.Text.Json.JsonSerializer; #endregion << 版 本 注 释 >> namespace SlnMesnac.TouchSocket { + + public class TcpServer { private ILogger _logger; private readonly TcpService _service; - private IScanLogService _scanService; - /// - /// 接收客户端指令委托 - /// - public delegate void ReceivedClientBuffer(byte[] buffer); - public event ReceivedClientBuffer? ReceivedClientBufferEvent; + private readonly IScanLogService _scanService; + // /// + // /// 接收客户端指令委托 + // /// + // public delegate void ReceivedClientBuffer(byte[] buffer); + // public event ReceivedClientBuffer? ReceivedClientBufferEvent; + // + // public delegate void RefreshClientInfo(TcpService tcpService); + // public event RefreshClientInfo? RefreshClientInfoEvent; + - public delegate void RefreshClientInfo(TcpService tcpService); - public event RefreshClientInfo? RefreshClientInfoEvent; + + public Action ScanLogSocketAction; + public Action ScanStatusSocketAction; + public TcpServer(ILogger logger,TcpService tcpService, IScanLogService scan) { _logger = logger; _service = tcpService; _scanService = scan; + } public void Init(int serverPort) @@ -66,22 +75,22 @@ namespace SlnMesnac.TouchSocket }; _service.Connected = (client, e) => { _logger.LogInformation($"客户端{client.IP}接入服务成功"); - RefreshClientInfoEvent?.Invoke(_service); + // RefreshClientInfoEvent?.Invoke(_service); return EasyTask.CompletedTask; }; _service.Disconnected = (client, e) => { _logger.LogInformation($"客户端{client.IP}断开连接"); - RefreshClientInfoEvent?.Invoke(_service); + // RefreshClientInfoEvent?.Invoke(_service); return EasyTask.CompletedTask; }; _service.Received = (client, e) => { //从客户端收到信息 var mes = Encoding.UTF8.GetString(e.ByteBlock.Buffer, 0, e.ByteBlock.Len);//注意:数据长度是byteBlock.Len - - byte[] receivedBuffer = new byte[e.ByteBlock.Len]; - Array.Copy(e.ByteBlock.Buffer, 0, receivedBuffer, 0, e.ByteBlock.Len); - ReceivedClientBufferEvent?.Invoke(receivedBuffer); + _logger.LogInformation("收到数据:{Data}",mes); + // byte[] receivedBuffer = new byte[e.ByteBlock.Len]; + // Array.Copy(e.ByteBlock.Buffer, 0, receivedBuffer, 0, e.ByteBlock.Len); + // ReceivedClientBufferEvent?.Invoke(receivedBuffer); int dataType = 0; var jObject = JObject.Parse(mes); @@ -94,7 +103,7 @@ namespace SlnMesnac.TouchSocket { ScanLogSocket scanStatus= JsonConvert.DeserializeObject(mes); - + ScanLogSocketAction?.Invoke(scanStatus); _scanService.Insert(new ScanLogModel() { CreateTime = scanStatus.CreateTime, @@ -114,6 +123,7 @@ namespace SlnMesnac.TouchSocket if (dataType == 2) { ScanStatusSocket scanStatus= JsonConvert.DeserializeObject(mes); + ScanStatusSocketAction?.Invoke(scanStatus); } }