using LY.App.Extensions.DI;
using Microsoft.AspNetCore.SignalR;
using Newtonsoft.Json;
namespace LY.App.Common.WebSocket
{
    /// 
    /// 客户端push消息
    /// 
    [ServiceInjection(InjectionType.Singleton)]
    public class PushService
    {
        private readonly IHubContext _hubContext;
        public PushService(IHubContext hubContext)
        {
            _hubContext = hubContext;
        }
        /// 
        /// 1对1消息
        /// 
        /// 
        /// 
        /// 
        public async Task SendMessageToClient(string connectionId, object message)
        {
            await _hubContext.Clients.Client(connectionId).SendAsync("ReceiveMessage", message);
        }
        /// 
        /// 全部消息
        /// 
        /// 
        /// 
        public async Task SendMessageToAll(object message)
        {
            var data = JsonConvert.SerializeObject(message);
            Console.WriteLine($"推送前端消息:{data}");
            await _hubContext.Clients.All.SendAsync("ReceiveMessage", data);
        }
    }
}