using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using AuroraDesk.Core.Entities; namespace AuroraDesk.Core.Interfaces; /// /// 管理 Plink 会话的服务接口,支持多客户端并行连接与实时消息流 /// public interface IPlinkSessionService : IDisposable { /// /// 创建并启动一个新的 Plink 会话 /// /// 会话参数 /// 取消令牌 /// 会话信息 Task StartSessionAsync(PlinkSessionOptions options, CancellationToken cancellationToken = default); /// /// 停止并释放指定会话 /// /// 会话标识 Task StopSessionAsync(Guid sessionId); /// /// 向指定会话发送命令或文本 /// /// 会话标识 /// 要发送的内容 /// 取消令牌 Task SendAsync(Guid sessionId, string payload, CancellationToken cancellationToken = default); /// /// 获取所有当前会话的快照 /// IReadOnlyCollection GetSessions(); /// /// 监听指定会话的状态变化 /// IObservable ObserveStatus(Guid sessionId); /// /// 监听指定会话的消息流(包含发送与接收) /// IObservable ObserveMessages(Guid sessionId); }