Авто переподключение Blazor Serverside - PullRequest
8 голосов
/ 17 января 2020

Серверная часть Blazor (do tnet core 3.1)

Я столкнулся с проблемой, что на стороне клиента это показано:

Не удалось переподключиться к серверу. Перезагрузите страницу для восстановления функциональности.

Каждый раз, когда я обновляю кодовую базу или Inte rnet не работает или что-то в этом роде.

Теперь цель состоит в том, чтобы перезагрузите страницу, как только сервер вернется (или через какой-то промежуток времени).

Есть ли какая-либо возможность / github-репо или что-то подобное, что могло бы мне помочь?

Thx!

Ответы [ 3 ]

6 голосов
/ 19 января 2020

Вы можете попробовать этот код:

<script src="_framework/blazor.server.js"></script>

<script>
   Blazor.defaultReconnectionHandler._reconnectCallback = function(d) {
        document.location.reload(); 
   }
</script>
1 голос
/ 13 апреля 2020
<script>
    // Wait until a 'reload' button appears
    new MutationObserver((mutations, observer) => {
        if (document.querySelector('#components-reconnect-modal h5 a')) {
            // Now every 10 seconds, see if the server appears to be back, and if so, reload
            async function attemptReload() {
                await fetch(''); // Check the server really is back
                location.reload();
            }
            observer.disconnect();
            attemptReload();
            setInterval(attemptReload, 10000);
        }
    }).observe(document.body, { childList: true, subtree: true });
</script>

Это подождет, пока не появится кнопка перезагрузки, а затем дождется, пока сервер вернется к работе, перед фактической перезагрузкой.

С https://github.com/dotnet/aspnetcore/issues/10325#issuecomment -537979717

0 голосов
/ 20 января 2020

Одна хитрость, о которой некоторые люди забывают, заключается в том, что вы можете «наблюдать» свою базу кода за изменениями, если вы открываете свой любимый терминал и запускаете dotnet run watch debug в той же папке, что и ваш файл cproj, он должен следить за вашими изменениями, поэтому, когда вы refre sh ваш браузер должен принимать любые изменения в вашем приложении, более подробную информацию читайте: https://docs.microsoft.com/en-us/aspnet/core/tutorials/dotnet-watch?view=aspnetcore-3.1

do tnet watch - это инструмент, который запускает a. NET Команда Core CLI при изменении исходных файлов. Например, изменение файла может вызвать компиляцию, выполнение теста или развертывание.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...