NetSession.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using CommonLang.Net;
  2. using CommonLang.Protocol;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Net;
  7. using System.Text;
  8. namespace CommonNetwork.Net
  9. {
  10. public delegate void OnSessionOpenedHandler(INetSession session);
  11. public delegate void OnSessionClosedHandler(INetSession session);
  12. public delegate void OnMessageReceivedHandler(INetSession session, Object data);
  13. public delegate void OnMessageSentHandler(INetSession session, Object data);
  14. public delegate void OnErrorHandler(INetSession session, Exception err);
  15. public delegate void OnUpdateHandler(INetSession session);
  16. public interface INetSession : AbstractSession, IDisposable
  17. {
  18. string URL { get; }
  19. IPEndPoint RemoteAddress { get; }
  20. bool IsConnected { get; }
  21. long TotalSentBytes { get; }
  22. long TotalRecvBytes { get; }
  23. long TotalSentPackages { get; }
  24. long TotalRecvPackages { get; }
  25. bool Open(string url, INetPackageCodec codec, INetSessionListener listener);
  26. bool Close();
  27. /// <summary>
  28. /// 发送一个消息,该方法将立即返回。
  29. /// </summary>
  30. /// <param name="data"></param>
  31. void Send(Object data);
  32. void SendResponse(IMessage rsponse, int requestMessageID);
  33. event OnSessionOpenedHandler OnSessionOpened;
  34. event OnSessionClosedHandler OnSessionClosed;
  35. event OnMessageReceivedHandler OnMessageReceived;
  36. event OnMessageSentHandler OnMessageSent;
  37. event OnErrorHandler OnError;
  38. }
  39. }