SubscriberDemo.cs 2.1 KB

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