asp.net core 如何使用 Websocket:
1、安装 Microsoft.AspNetCore.WebSockets 包。
2、配置中间件。
3、接受 WebSocket 请求。
4、发送和接收消息。
配置中间件
在 Startup 类的 Configure 方法中添加 WebSocket 中间件:
可配置以下设置:
KeepAliveInterval - 向客户端发送“ping”帧的频率,以确保代理保持连接处于打开状态。
ReceiveBufferSize - 用于接收数据的缓冲区的大小。 高级用户可能需要对其进行更改,以便根据数据大小调整性能。
Configure
var webSocketOptions = new WebSocketOptions()
{
KeepAliveInterval = TimeSpan.FromSeconds(120),
ReceiveBufferSize = 4 * 1024
};
app.UseWebSockets(webSocketOptions);
接受 WebSocket 请求
在请求生命周期后期(例如在 Configure 方法或 MVC 操作的后期),检查它是否是 WebSocket 请求并接受 WebSocket 请求。
以下示例来自 Configure 方法的后期:
Configure类
app.Use(async (context, next) =>
{
if (context.Request.Path == "/ws")
{
if (context.WebSockets.IsWebSocketRequest)
{
WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync();
await Echo(context, webSocket);
}
else
{
context.Response.StatusCode = 400;
}
}
else
{
await next();
}
});
发送和接收消息
AcceptWebSocketAsync 方法将 TCP 连接升级到 WebSocket 连接,并提供 WebSocket 对象。 使用 WebSocket 对象发送和接收消息。
之前显示的接受 WebSocket 请求的代码将 WebSocket 对象传递给 Echo 方法。 代码接收消息并立即发回相同的消息。 循环发送和接收消息,直到客户端关闭连接:
收、发信息
这篇文档对您是否有帮助?