ITcpPlugin.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //------------------------------------------------------------------------------
  2. // 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有
  3. // 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权
  4. // CSDN博客:https://blog.csdn.net/qq_40374647
  5. // 哔哩哔哩视频:https://space.bilibili.com/94253567
  6. // Gitee源代码仓库:https://gitee.com/RRQM_Home
  7. // Github源代码仓库:https://github.com/RRQM
  8. // API首页:https://www.yuque.com/rrqm/touchsocket/index
  9. // 交流QQ群:234762506
  10. // 感谢您的下载和使用
  11. //------------------------------------------------------------------------------
  12. //------------------------------------------------------------------------------
  13. using System.Threading.Tasks;
  14. using TouchSocket.Core;
  15. namespace TouchSocket.Sockets
  16. {
  17. /// <summary>
  18. /// Tcp系插件接口
  19. /// </summary>
  20. public interface ITcpPlugin : IPlugin, IConnectingPlugin, IConnectedPlugin, IDisconnectingPlugin, IDisconnectedPlguin
  21. {
  22. /// <summary>
  23. /// 当Client的ID被更改后触发
  24. /// </summary>
  25. /// <param name="client"></param>
  26. /// <param name="e"></param>
  27. [AsyncRaiser]
  28. void OnIDChanged(ITcpClientBase client, IDChangedEventArgs e);
  29. /// <summary>
  30. /// 当Client的ID被更改后触发
  31. /// </summary>
  32. /// <param name="client"></param>
  33. /// <param name="e"></param>
  34. /// <returns></returns>
  35. Task OnIDChangedAsync(ITcpClientBase client, IDChangedEventArgs e);
  36. /// <summary>
  37. /// 在收到数据时触发
  38. /// </summary>
  39. /// <param name="client">客户端</param>
  40. /// <param name="e">参数</param>
  41. [AsyncRaiser]
  42. void OnReceivedData(ITcpClientBase client, ReceivedDataEventArgs e);
  43. /// <summary>
  44. /// 在收到数据时触发
  45. /// </summary>
  46. /// <param name="client"></param>
  47. /// <param name="e"></param>
  48. /// <returns></returns>
  49. Task OnReceivedDataAsync(ITcpClientBase client, ReceivedDataEventArgs e);
  50. /// <summary>
  51. /// 在刚收到数据时触发,即在适配器之前。
  52. /// </summary>
  53. /// <param name="client">客户端</param>
  54. /// <param name="e">参数</param>
  55. [AsyncRaiser]
  56. void OnReceivingData(ITcpClientBase client, ByteBlockEventArgs e);
  57. /// <summary>
  58. /// 在刚收到数据时触发,即在适配器之前。
  59. /// </summary>
  60. /// <param name="client"></param>
  61. /// <param name="e"></param>
  62. /// <returns></returns>
  63. Task OnReceivingDataAsync(ITcpClientBase client, ByteBlockEventArgs e);
  64. /// <summary>
  65. /// 当即将发送数据时,调用该方法在适配器之后,接下来即会发送数据。
  66. /// </summary>
  67. /// <param name="client">客户端</param>
  68. /// <param name="e">参数</param>
  69. [AsyncRaiser]
  70. void OnSendingData(ITcpClientBase client, SendingEventArgs e);
  71. /// <summary>
  72. /// 当即将发送数据时,调用该方法在适配器之后,接下来即会发送数据。
  73. /// </summary>
  74. /// <param name="client"></param>
  75. /// <param name="e"></param>
  76. /// <returns></returns>
  77. Task OnSendingDataAsync(ITcpClientBase client, SendingEventArgs e);
  78. }
  79. }