using Elight.Entity; using Elight.Logic; using Elight.Utility; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using SqlSugar; using System.Net.WebSockets; namespace _24Hour.Controllers.Common { //[Authorize] public class WebSocketController : Controller { //private readonly SqlSugarClient _db;//数据库 //App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户 //private readonly ILogger _logger;//日志 //public WebSocketController(ILogger logger, SqlSugarClient db, User user) //{ // _logger = logger; // _db = db; // _userdata = user.Userdata(); //} [HttpGet("/ws")] public async Task WebSocketServer() { if (HttpContext.WebSockets.IsWebSocketRequest) { try { var socket = await HttpContext.WebSockets.AcceptWebSocketAsync(); //ProcessChat(socket); } catch (Exception ex) { } } } //private async Task ProcessChat(WebSockets context) //{ // WebSocket socket = context.WebSocket; // while (true) // { // if (socket.State == WebSocketState.Open) // { // ArraySegment buffer = new ArraySegment(new byte[2048]); // WebSocketReceiveResult result = await socket.ReceiveAsync(buffer, CancellationToken.None); // string userMsg = Encoding.UTF8.GetString(buffer.Array, 0, result.Count); // userMsg = "你发送了:" + userMsg + "于" + DateTime.Now.ToLongTimeString(); // buffer = new ArraySegment(Encoding.UTF8.GetBytes(userMsg)); // await socket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None); // } // else // { // break; // } // } //} } }