SubscriberDemo.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using System;
  2. using Newtonsoft.Json.Linq;
  3. using Sers.Core.Module.PubSub;
  4. using Vit.Core.Module.Log;
  5. using Vit.Extensions.Newtonsoft_Extensions;
  6. using Vit.Extensions.Json_Extensions;
  7. namespace Did.SersLoader.Demo.Controllers.PubSub
  8. {
  9. public class SubscriberDemo
  10. {
  11. #region Demo
  12. public static void Subscribe()
  13. {
  14. #region Demo1
  15. {
  16. string msgTitle = "SersEvent.ServiceStation.Add";
  17. Action<ArraySegment<byte>> OnMessage = (msgBody) =>
  18. {
  19. var serviceStation = msgBody.ArraySegmentByteToString().ConvertBySerialize<JObject>();
  20. var serviceStationName = serviceStation?["serviceStationInfo"]?["serviceStationName"]?.ConvertToString();
  21. var msgContext = "[Subscribe1][" + msgTitle + "] " + serviceStationName;
  22. Logger.Info(msgContext);
  23. //Console.WriteLine(msgContext);
  24. };
  25. //创建消息订阅
  26. var subscriber = HotPlugSubscriber.Subscribe(msgTitle, OnMessage);
  27. //关闭消息订阅
  28. //subscriber.SubscribeCancel();
  29. }
  30. #endregion
  31. #region Demo2
  32. {
  33. string msgTitle = "SersEvent.ServiceStation.Remove";
  34. Action<JObject> OnMessage = (msgBody) =>
  35. {
  36. var serviceStation = msgBody;
  37. var serviceStationName = serviceStation?["serviceStationInfo"]?["serviceStationName"]?.ConvertToString();
  38. var msgContext = "[Subscribe2][" + msgTitle + "] " + serviceStationName;
  39. Logger.Info(msgContext);
  40. //Console.WriteLine(msgContext);
  41. };
  42. //创建消息订阅
  43. var subscriber = HotPlugSubscriber.Subscribe(msgTitle, OnMessage);
  44. //关闭消息订阅
  45. //subscriber.SubscribeCancel();
  46. }
  47. #endregion
  48. }
  49. #endregion
  50. }
  51. }