How to increase timeout setting in ASP.NET Core SignalR v2.1?

前端 未结 2 1564
清歌不尽
清歌不尽 2021-02-14 07:42

I\'m trying out the latest SignalR on ASP.NET Core 2.1. I have the basic app working but it times out pretty soon right now. I see this error -

Error: Co

相关标签:
2条回答
  • 2021-02-14 07:59

    in startup.cs

    services.AddSignalR(hubOptions =>
                {
                    hubOptions.EnableDetailedErrors = true;
                    hubOptions.KeepAliveInterval = TimeSpan.FromMinutes(60);
                })
    
    0 讨论(0)
  • 2021-02-14 08:15

    For people that may come here in future:

    Here is how to increase Javascript client timeout

    hubConnection.serverTimeoutInMilliseconds = 100000; // 100 second
    

    But also take a look at this link and then read my comments below:

    If signalR got disconnected, you should try re-establishing the connection again. The connection could drop for several other reasons, including the user switching networks. For example if the user is using a cell-phone and connected to the home/office wifi but steps out which then connects to cellular data connection.

    To reconnect you could use the following (works like a charm for me):

    // re-establish the connection if connection dropped
    connection.onclose(() => setTimeout(startSignalRConnection(connection), 5000));
    

    where startSignalRConnection is :

    const startSignalRConnection = connection => connection.start()
      .then(() => console.info('Websocket Connection Established'))
      .catch(err => console.error('SignalR Connection Error: ', err));
    

    and connection is

    const connection = new HubConnectionBuilder()
      .withUrl(connectionHub, options)
      .withHubProtocol(protocol)
      .build();
    
    0 讨论(0)
提交回复
热议问题