using CommonLang.Net; using CommonLang.Protocol; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; namespace CommonNetwork.Net { public delegate void OnSessionOpenedHandler(INetSession session); public delegate void OnSessionClosedHandler(INetSession session); public delegate void OnMessageReceivedHandler(INetSession session, Object data); public delegate void OnMessageSentHandler(INetSession session, Object data); public delegate void OnErrorHandler(INetSession session, Exception err); public delegate void OnUpdateHandler(INetSession session); public interface INetSession : AbstractSession, IDisposable { string URL { get; } IPEndPoint RemoteAddress { get; } bool IsConnected { get; } long TotalSentBytes { get; } long TotalRecvBytes { get; } long TotalSentPackages { get; } long TotalRecvPackages { get; } bool Open(string url, INetPackageCodec codec, INetSessionListener listener); bool Close(); /// /// 发送一个消息,该方法将立即返回。 /// /// void Send(Object data); void SendResponse(IMessage rsponse, int requestMessageID); event OnSessionOpenedHandler OnSessionOpened; event OnSessionClosedHandler OnSessionClosed; event OnMessageReceivedHandler OnMessageReceived; event OnMessageSentHandler OnMessageSent; event OnErrorHandler OnError; } }