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