2025-07-16 09:20:13 +08:00
|
|
|
using System;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
|
using YunDa.Server.ISMSTcp.Models;
|
|
|
|
|
|
|
|
|
|
namespace YunDa.Server.ISMSTcp.Interfaces
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// TCP客户端接口
|
|
|
|
|
/// </summary>
|
|
|
|
|
public interface ITcpClient : IDisposable
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 连接状态
|
|
|
|
|
/// </summary>
|
|
|
|
|
bool IsConnected { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// TCP响应接收事件
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Func<object, bool>? TcpResponseReceived;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 连接状态变化事件
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<bool, string>? ConnectionStatusChanged;
|
|
|
|
|
|
2025-08-07 14:49:24 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 连接成功事件
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action? ConnectionSucceeded;
|
|
|
|
|
|
2025-07-16 09:20:13 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 消息接收事件
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<string>? MessageReceived;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 命令状态变化事件
|
|
|
|
|
/// </summary>
|
|
|
|
|
event Action<CommandState?>? CommandStateChanged;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 连接到服务器
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="ip">IP地址</param>
|
|
|
|
|
/// <param name="port">端口</param>
|
|
|
|
|
/// <param name="cancellationToken">取消令牌</param>
|
|
|
|
|
/// <returns>连接任务</returns>
|
|
|
|
|
Task ConnectAsync(string ip, int port, CancellationToken cancellationToken = default);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 发送TCP消息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="message">消息内容</param>
|
|
|
|
|
/// <param name="cancellationToken">取消令牌</param>
|
|
|
|
|
/// <returns>发送结果</returns>
|
|
|
|
|
Task<bool> SendMessageAsync(string message, CancellationToken cancellationToken = default);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 启动数据处理
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="cancellationToken">取消令牌</param>
|
|
|
|
|
/// <returns>处理任务</returns>
|
|
|
|
|
Task StartProcessingAsync(CancellationToken cancellationToken = default);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 停止处理
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>停止任务</returns>
|
|
|
|
|
Task StopAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|