using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using CoreAgent.ProtocolClient.Context; using CoreAgent.ProtocolClient.Enums; using CoreAgent.ProtocolClient.Models; using Newtonsoft.Json.Linq; namespace CoreAgent.ProtocolClient.ProtocolEngineCore { /// /// 定义了协议客户端的公共接口 /// public interface IProtocolWsClient : IDisposable { event EventHandler ConnectionOpened; event EventHandler ConnectionClosed; event EventHandler ConnectionError; event EventHandler MessageReceived; event EventHandler StatsReceived; event EventHandler StateChanged; bool IsConnected { get; } ClientState State { get; } bool IsReadonly { get; } ProtocolClientContext Context { get; } ProtocolClientConfig Config { get; } void Start(); void Stop(); void ResetLogs(); void SetLogsConfig(ProtocolClientLogsConfig logsConfig, bool save = false); void LogGet(Dictionary? parameters = null); void TriggerStatsUpdate(); void ResetStatistics(); void SetStatisticsConfig(bool enableSamples, bool enableRf); (bool samples, bool rf) GetStatisticsConfig(); void SetRefreshDelay(int delay); void SetMessageHandler(string[] names, MessageHandler handler); void UnsetMessageHandler(string[] names); long SendMessage(JObject message, Action? callback = null, bool errorHandler = false); } }