【问题标题】:Asp net core SignalR websocket connection time more then 1 secondAsp net core SignalR websocket连接时间超过1秒
【发布时间】:2019-12-13 19:49:14
【问题描述】:

我使用https://docs.microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr 创建了 dot net core SignalR 客户端 使用 StartAsync 连接需要 1 秒以上。 那太长了。 我们怎样才能减少开始时间?有什么需要调整的参数吗?

【问题讨论】:

  • 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 毫秒之间徘徊。 这是一个很长的时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-17
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多