KeiStory

Blazor reconnection 메세지 줄이는 방법

 

App.razor 파일에 아래 내용을 추가합니다. (autostart="false" 로 반드시 설정해야 합니다.)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <base href="/" />
    <link rel="stylesheet" href="bootstrap/bootstrap.min.css" />
    <link rel="stylesheet" href="app.css" />
    <link rel="stylesheet" href="BlazorApp7.styles.css" />
    <link rel="icon" type="image/png" href="favicon.png" />
    <HeadOutlet />
</head>

<body>
    <Routes />
    @* autostart="false" 로 처리 *@
    <script src="_framework/blazor.web.js" autostart="false"></script>
    @* 스크립트 추가 *@
    <script>
        Blazor.start({
            reconnectionOptions: {
                maxRetries: 100,
                retryIntervalMilliseconds: 2000
            },
            configureSignalR: function (builder) {
                let c = builder.build();
                c.serverTimeoutInMilliseconds = 30000;
                c.keepAliveIntervalInMilliseconds = 10000;
                builder.build = () => {
                    return c;
                };
            }
        });
    </script>
</body>

</html>

 

위 설정 내용은 아래와 같은 의미를 가집니다.

maxRetries: 100
retryIntervalMilliseconds: 2000

이는 클라이언트가 최대 100번까지, 각 시도 간에 2초 간격을 두고 재연결을 시도하게 합니다. 재연결 실패 메시지를 나타내기 전에 더 긴 시간 동안 재연결을 시도하도록 하는 합니다.

serverTimeoutInMilliseconds: 30000
keepAliveIntervalInMilliseconds: 10000


이는 클라이언트가 서버로부터 30초마다 응답을 기대하고, 10초마다 keep-alive 메시지를 보내도록 합니다. 이러한 설정은 클라이언트와 서버 간의 빈번한 통신을 통해 연결을 더 효과적으로 유지하게 합니다.

사용자가 화면을 사용하지 않는 경우 네트워크 상태나 브라우저 절전모드에 따라 접속이 끊어질 수 있습니다.

 

참고

https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/startup?view=aspnetcore-8.0

 

ASP.NET Core Blazor startup

Learn how to configure Blazor startup.

learn.microsoft.com

https://sqlpey.com/dotnet/resolve-blazor-server-timeout-issues/

 

Top 4 Ways to Resolve Blazor Server Timeout Issues

Explore effective methods to handle Blazor Server timeout and connection issues.

sqlpey.com

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band