FastStream.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using CommonLang.Property;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace Pomelo
  8. {
  9. public class FastStreamConfig
  10. {
  11. public int port = 3360;
  12. }
  13. public interface IFastSession
  14. {
  15. string ConnectorId { get; }
  16. void doClose();
  17. bool IsConnected();
  18. string GetDescribe();
  19. }
  20. /// <summary>
  21. /// morefunFastStream管理器
  22. /// </summary>
  23. public abstract class FastStream
  24. {
  25. private static FastStream _instance;
  26. public static void init(string class_name)
  27. {
  28. if (string.IsNullOrEmpty(class_name))
  29. {
  30. class_name = typeof(FuckFastStream).FullName;
  31. }
  32. _instance = ReflectionUtil.CreateInstance(ReflectionUtil.GetType(class_name)) as FastStream;
  33. }
  34. /// <summary>
  35. /// 单件实例
  36. /// </summary>
  37. /// <returns></returns>
  38. public static FastStream instance()
  39. {
  40. return _instance;
  41. }
  42. public abstract IFastSession GetSessionByID(string sessionID);
  43. /// <summary>
  44. /// 初始化
  45. /// </summary>
  46. /// <param name="config">配置</param>
  47. public abstract void Start(FastStreamConfig config, IZone zone);
  48. /// <summary>
  49. /// 停止服务
  50. /// </summary>
  51. public abstract void Stop();
  52. /// <summary>
  53. /// 发送数据到connector服务器
  54. /// </summary>
  55. /// <param name="session"></param>
  56. /// <param name="uid"></param>
  57. /// <param name="data"></param>
  58. public abstract void Send(IFastSession session, string uid, string instanceId,ArraySegment<byte> data);
  59. }
  60. }