【问题标题】:Asp net core SignalR websocket connection time more then 1 secondAsp net core SignalR websocket连接时间超过1秒
【发布时间】:2019-12-13 19:49:14
【问题描述】:
【问题讨论】:
-
1)您共享的 link 是用于 ASP.NET SignalR,而不是用于 ASP.NET Core SignalR。 2)你如何测量代码执行所花费的时间并发现它需要超过1秒? 3)请检查使用了哪种传输方式(WebSockets、服务器发送事件和长轮询)。
标签:
.net-core
websocket
signalr
asp.net-core-signalr
【解决方案1】:
感谢您的回复和更正的链接。
解决方案是使用 ASP.NetCore,并且传输配置为仅使用 WebSocket。
服务器端(启动/配置)
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<LiveHub>("/signalr/livehub", options =>
{
options.Transports = HttpTransportType.WebSockets;
});
});
控制台客户端应用程序是按照以下方式构建的:
https://github.com/aspnet/AspNetCore.Docs/tree/master/aspnetcore/signalr/dotnet-client/sample/SignalRChatClient
在客户端下
connection = new HubConnectionBuilder()
.WithUrl("http://localhost:xxxx/signalr/livehub", options =>
{
options.SkipNegotiation = true;
options.Transports = HttpTransportType.WebSockets;
})
.Build();
代码执行时间是在客户端计算的,在
await connection.StartAsync();
对于多个测试用例,平均连接时间在 900 毫秒到 1200 毫秒之间徘徊。
这是一个很长的时间。