47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
using LY.App.Extensions.DI;
 | 
						|
using Microsoft.AspNetCore.SignalR;
 | 
						|
using Newtonsoft.Json;
 | 
						|
 | 
						|
namespace LY.App.Common.WebSocket
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// socket
 | 
						|
    /// </summary>
 | 
						|
    [ServiceInjection(InjectionType.Singleton)]
 | 
						|
    public class SocketHub : Hub
 | 
						|
    {
 | 
						|
        // 客户端连接事件
 | 
						|
        public override async Task OnConnectedAsync()
 | 
						|
        {
 | 
						|
            var msg = JsonConvert.SerializeObject(new { msgType = "info", data = "hello" });
 | 
						|
            // 发送消息给连接的客户端
 | 
						|
            await Clients.Caller.SendAsync("ReceiveMessage", msg);
 | 
						|
            await base.OnConnectedAsync();
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// // 自定义方法,用于向客户端推送消息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="message"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public async Task SendMessageToClient(object message)
 | 
						|
        {
 | 
						|
            // 发送消息给所有客户端
 | 
						|
 | 
						|
            var connId = this.Context.ConnectionId;
 | 
						|
            var msg = JsonConvert.SerializeObject(message);
 | 
						|
            await this.Clients.All.SendAsync("ReceiveMessage", msg);
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 向指的用户发送
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="user"></param>
 | 
						|
        /// <param name="message"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public async Task SendMessageToUser(string user, object message)
 | 
						|
        {
 | 
						|
            var msg = JsonConvert.SerializeObject(message);
 | 
						|
            await Clients.All.SendAsync("ReceiveMessage", user, msg);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |