public async Task Get() { var context = ControllerContext.HttpContext; var isSocketRequest = context.WebSockets.IsWebSocketRequest; if (isSocketRequest) { WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync(); /*// Data fetching from DB * var toDoItems = await _repositoryToDoItem.QueryNoTracking() * .OrderByDescending(s => s.CreateDateUTC) * .ThenByDescending(s => s.UpdateDateUTC) * .ToListAsync(); * * // Websocket sending * var jsonString = JsonSerializer.Serialize(toDoItems); * var bytes = Encoding.ASCII.GetBytes(jsonString); * var arraySegment = new ArraySegment<byte>(bytes); * await webSocket.SendAsync(arraySegment, WebSocketMessageType.Text, true, CancellationToken.None);*/ await _websocketHandler.Handle(Guid.NewGuid(), webSocket, _repositoryToDoItem); } else { context.Response.StatusCode = 400; } }
public async Task Get() { var context = ControllerContext.HttpContext; var isSocketRequest = context.WebSockets.IsWebSocketRequest; if (isSocketRequest) { var websocket = await context.WebSockets.AcceptWebSocketAsync(); await _websocketHandler.Handle(Guid.NewGuid(), websocket); } else { context.Response.StatusCode = 400; } }