|
|
|
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;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
}
|
|
|
|
}
|