1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.SignalR;
- using OASystem.API.OAMethodLib.Hub.HubClients;
- using OASystem.API.OAMethodLib.Hub.Hubs;
- using OASystem.API.OAMethodLib.SignalR.Hubs;
- namespace OASystem.API.Controllers
- {
- /// <summary>
- /// 消息客户端
- /// </summary>
- [Route("api/[controller]/[action]")]
- public class ClientHubController : ControllerBase
- {
- private readonly ILogger<ClientHubController> _logger;
- private readonly IHubContext<ChatHub, IChatClient> _hubContext;
- public ClientHubController(ILogger<ClientHubController> logger, IHubContext<ChatHub, IChatClient> hubContext )
- {
- _logger = logger;
- _hubContext = hubContext;
- }
- /// <summary>
- /// 获取在线用户
- /// </summary>
- /// <returns></returns>
- [HttpGet("GetOnlineUsers", Name = "GetOnlineUsers")]
- public List<UserModel> GetOnlineUsers()
- {
- return UserStore.OnlineUser;
- }
- /// <summary>
- /// 发送消息给客户端
- /// </summary>
- /// <param name="userid"></param>
- /// <param name="date"></param>
- /// <param name="hubContext"></param>
- /// <returns></returns>
- [HttpPost("SendAllUserMessage", Name = "SendAllUserMessage")]
- public async Task<IActionResult> SendAllUserMessage( string msg)
- {
- await _hubContext.Clients.All.ReceiveMessage(msg);
- return Ok("Send Successful!");
- }
- /// <summary>
- /// 发送指定的消息给指定的客户端
- /// </summary>
- /// <param name="userid"></param>
- /// <param name="date"></param>
- /// <param name="hubContext"></param>
- /// <returns></returns>
- [HttpPost("SendCustomUserMessage", Name = "SendCustomUserMessage")]
- public async Task<IActionResult> SendCustomUserMessage(int userId,string date )
- {
- string connId = string.Empty;
- UserModel user = UserStore.OnlineUser.Where(it => it.UserId == userId).FirstOrDefault();
- if (user != null)
- {
- connId = user.ConnectionId;
- }
- else
- {
- return Ok("Send Failed! User Not Online!");
- }
- await _hubContext.Clients.Client(connId).ReceiveMessage(date);
- return Ok("Send Successful!");
- }
- }
- }
|