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;
}
}