WeMessageSender.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using Abp.Dependency;
  4. using IwbZero.Messages;
  5. using IwbZero.ToolCommon;
  6. using IwbZero.ToolCommon.StringModel;
  7. using WeEngine.Enum;
  8. namespace WeEngine.Module.Message
  9. {
  10. public class WeMessageSender: IWeMessageSender, ISingletonDependency
  11. {
  12. public static WeMessageSender Instance = new WeMessageSender();
  13. public WeMessageSender()
  14. {
  15. Listener = new MsgListener<WeMessage>();
  16. if (!MsgListener<WeMessage>.IsDelegateRegister("Send"))
  17. {
  18. MsgListener<WeMessage>.SendMsg += SendWeMessage;
  19. }
  20. }
  21. private MsgListener<WeMessage> Listener { get; set; }
  22. public void SendMsg(string msg, MessageType msgType)
  23. {
  24. var message= new WeMessage()
  25. {
  26. MsgContent = msg,
  27. MsgType = msgType
  28. };
  29. SendMsg(message);
  30. }
  31. public void SendMsg(WeMessage msg)
  32. {
  33. Listener.AddSendMsg(msg);
  34. }
  35. public void ReceiveMsg(string msgId)
  36. {
  37. Listener.AddReceiveMsg(msgId);
  38. }
  39. protected void SendWeMessage(WeMessage msg)
  40. {
  41. if (msg.MsgType != MessageType.InternalMessage)
  42. {
  43. var urls = GetSubscriptionUrl(msg.MsgType);
  44. if (urls != null && urls.Any())
  45. {
  46. foreach (var url in urls)
  47. {
  48. url.RequestPost(msg.Obj2String(),new Dictionary<string, string>()
  49. {
  50. ["MessageId"] = msg.Id,
  51. ["CallBackUrl"]="",
  52. });
  53. }
  54. }
  55. }
  56. else
  57. {
  58. }
  59. }
  60. /// <summary>
  61. /// 获取订阅消息的URL
  62. /// </summary>
  63. /// <returns></returns>
  64. public List<string> GetSubscriptionUrl(MessageType messageType)
  65. {
  66. var urls = new List<string>();
  67. return urls;
  68. }
  69. }
  70. }