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
https://sqlpey.com/dotnet/resolve-blazor-server-timeout-issues/
Blazor Serilog 에서 HTTP 로깅 제외하기 (0) | 2024.10.30 |
---|---|
쿠버네티스 환경의 Blazor 애플리케이션에서 Client 실제 IP 남기는 방법 (0) | 2024.10.29 |
Blazor iFrame 내에 포함될 수 있게 하기 - Content Security Policy (CSP) (0) | 2024.10.21 |
Blazor App 을 GitHub Action 으로 CI/CD 하기 (0) | 2024.10.16 |
Blazor 에서 OllamaSharp 이용해 Ollama 모델로 채팅하기 (0) | 2024.09.30 |