using System; using System.Net; using ZeroLevel.Models; namespace ZeroLevel.Network { public interface IClient : IDisposable { IPEndPoint EndPoint { get; } SocketClientStatus Status { get; } IRouter Router { get; } ISocketClient Socket { get; } InvokeResult Send(T message); InvokeResult Send(string inbox); InvokeResult Send(string inbox, byte[] data); InvokeResult Send(string inbox, T message); InvokeResult Request(string inbox, Action callback); InvokeResult Request(string inbox, byte[] data, Action callback); InvokeResult Request(string inbox, Action callback); InvokeResult Request(string inbox, Trequest request, Action callback); } }