You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.1 KiB
59 lines
2.1 KiB
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<LoginController> _logger;//日志 |
|
//public WebSocketController(ILogger<LoginController> 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<byte> buffer = new ArraySegment<byte>(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<byte>(Encoding.UTF8.GetBytes(userMsg)); |
|
// await socket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None); |
|
// } |
|
// else |
|
// { |
|
// break; |
|
// } |
|
// } |
|
//} |
|
} |
|
}
|
|
|