SendMessageService.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. //using Microsoft.AspNetCore.SignalR;
  2. //namespace Admin.NET.Core.Service;
  3. ///// <summary>
  4. ///// 消息发送服务
  5. ///// </summary>
  6. //[ApiDescriptionSettings(Name = "Message", Order = 100)]
  7. //[Route("api")]
  8. //public class SendMessageService : ISendMessageService, IDynamicApiController, ITransient
  9. //{
  10. // private readonly ISysCacheService _sysCacheService;
  11. // private readonly IHubContext<ChatHub, IChatClient> _chatHubContext;
  12. // public SendMessageService(ISysCacheService sysCacheService,
  13. // IHubContext<ChatHub, IChatClient> chatHubContext)
  14. // {
  15. // _sysCacheService = sysCacheService;
  16. // _chatHubContext = chatHubContext;
  17. // }
  18. // /// <summary>
  19. // /// 发送消息给所有人
  20. // /// </summary>
  21. // /// <param name="title">发送标题</param>
  22. // /// <param name="message">发送内容</param>
  23. // /// <param name="type">消息类型</param>
  24. // /// <returns></returns>
  25. // [HttpGet("sysMessage/allUser")]
  26. // public async Task SendMessageToAllUser(string title, string message, MessageTypeEnum type)
  27. // {
  28. // await _chatHubContext.Clients.All.ReceiveMessage(new { Title = title, Message = message, Messagetype = type });
  29. // }
  30. // /// <summary>
  31. // /// 发送消息给除了发送人的其他人
  32. // /// </summary>
  33. // /// <param name="title">发送标题</param>
  34. // /// <param name="message">发送内容</param>
  35. // /// <param name="userId">发送人</param>
  36. // /// <param name="type">消息类型</param>
  37. // /// <returns></returns>
  38. // [HttpGet("sysMessage/otherUser")]
  39. // public async Task SendMessageToOtherUser(string title, string message, MessageTypeEnum type, long userId)
  40. // {
  41. // var onlineuserlist = await _sysCacheService.GetAsync<List<OnlineUser>>(CommonConst.CACHE_KEY_ONLINE_USER);
  42. // var user = onlineuserlist.Where(x => x.UserId == userId).ToList();
  43. // if (user != null)
  44. // {
  45. // await _chatHubContext.Clients.AllExcept(user[0].ConnectionId).ReceiveMessage(new { title = title, message = message, messagetype = type });
  46. // }
  47. // }
  48. // /// <summary>
  49. // /// 发送消息给某个人
  50. // /// </summary>
  51. // /// <param name="title">发送标题</param>
  52. // /// <param name="message">发送内容</param>
  53. // /// <param name="userId">接收人</param>
  54. // /// <param name="type">消息类型</param>
  55. // /// <returns></returns>
  56. // [HttpGet("sysMessage/user")]
  57. // public async Task SendMessageToUser(string title, string message, MessageTypeEnum type, long userId)
  58. // {
  59. // var onlineuserlist = await _sysCacheService.GetAsync<List<OnlineUser>>(CommonConst.CACHE_KEY_ONLINE_USER);
  60. // var user = onlineuserlist.Where(x => x.UserId == userId).ToList();
  61. // if (user != null)
  62. // {
  63. // foreach (var item in user)
  64. // {
  65. // await _chatHubContext.Clients.Client(item.ConnectionId).ReceiveMessage(new { title = title, message = message, messagetype = type });
  66. // }
  67. // }
  68. // }
  69. // /// <summary>
  70. // /// 发送消息给某些人
  71. // /// </summary>
  72. // /// <param name="title">发送标题</param>
  73. // /// <param name="message">发送内容</param>
  74. // /// <param name="userId">接收人列表</param>
  75. // /// <param name="type">消息类型</param>
  76. // /// <returns></returns>
  77. // [HttpGet("sysMessage/users")]
  78. // public async Task SendMessageToUsers(string title, string message, MessageTypeEnum type, List<long> userId)
  79. // {
  80. // var onlineuserlist = await _sysCacheService.GetAsync<List<OnlineUser>>(CommonConst.CACHE_KEY_ONLINE_USER);
  81. // var userlist = new List<string>();
  82. // foreach (var item in onlineuserlist)
  83. // {
  84. // if (userId.Contains(item.UserId))
  85. // userlist.Add(item.ConnectionId);
  86. // }
  87. // await _chatHubContext.Clients.Clients(userlist).ReceiveMessage(new { Title = title, Message = message, Messagetype = type });
  88. // }
  89. //}