我尝试过asp .net核心中间件教程:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-2.1&tabs=aspnetcore2x#built-in-middleware
https://radu-matei.com/blog/aspnet-core-websockets-middleware/
在那里,您需要一个带有httpcontext对象的invoke方法,如下所示:
public async Task Invoke(HttpContext context)
{
if(!context.WebSockets.IsWebSocketRequest)
return;
var socket = await context.WebSockets.AcceptWebSocketAsync();
await _webSocketHandler.OnConnected(socket);
await Receive(socket, async(result, buffer) =>
{
if(result.MessageType == WebSocketMessageType.Text)
{
await _webSocketHandler.ReceiveAsync(socket, result, buffer);
return;
}
else if(result.MessageType == WebSocketMessageType.Close)
{
await _webSocketHandler.OnDisconnected(socket);
return;
}
});
}
当前,本教程中使用了websocket连接。是否可以将websocket连接降级为tcp或套接字连接?