| | |
| | | using Microsoft.Extensions.Options; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.IO; |
| | | using System.Net.Sockets; |
| | | using System.Text; |
| | | using System.Threading; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_QuartzJob; |
| | | |
| | | namespace WIDESEAWCS_Tasks.SocketServer |
| | | { |
| | |
| | | public bool IsRunning { get; private set; } |
| | | |
| | | /// <summary> |
| | | /// 上次接收消息源 |
| | | /// 每个客户端上次接收的消息,用于去重 |
| | | /// </summary> |
| | | public string lastMessage; |
| | | /// <remarks> |
| | | /// Key: 客户端 ID |
| | | /// Value: 上次接收的消息内容 |
| | | /// </remarks> |
| | | public readonly Dictionary<string, string> _clientLastMessage = new(); |
| | | |
| | | /// <summary> |
| | | /// 消息接收事件 |
| | |
| | | /// 当服务器接收到消息时触发。 |
| | | /// 参数:消息内容、是否 JSON 格式、TCP 客户端、机器人状态 |
| | | /// </remarks> |
| | | public event Func<string, bool, TcpClient, RobotSocketState, Task<string?>>? MessageReceived; |
| | | public event Func<string, bool, TcpClient, Task<string?>>? MessageReceived; |
| | | |
| | | /// <summary> |
| | | /// 机器人连接断开事件 |
| | |
| | | /// <param name="message">日志消息</param> |
| | | private void Log(string message) |
| | | { |
| | | //Logger.None.Information(message); |
| | | Console.WriteLine(message); |
| | | try { File.AppendAllText(_logFile, message + Environment.NewLine); } catch { } |
| | | } |
| | | } |
| | | } |
| | | } |