Tự động kết nối lại Blazor Serverside


8

Máy chủ Blazor (lõi dotnet 3.1)

Tôi gặp phải vấn đề mà về phía khách hàng, điều này được thể hiện:

Không thể kết nối lại với máy chủ. Tải lại trang để khôi phục chức năng.

Mỗi lần tôi cập nhật Codebase hoặc Internet bị hỏng hoặc đại loại như thế này.

Bây giờ mục tiêu là nó sẽ tải lại trang ngay khi máy chủ hoạt động trở lại (hoặc trong một khoảng thời gian nào đó).

Có bất kỳ khả năng / github repo hoặc một cái gì đó như thế này có thể giúp tôi?

Cám ơn!

Câu trả lời:


6

Bạn có thể thử mã này:

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

<script>
   Blazor.defaultReconnectionHandler._reconnectCallback = function(d) {
        document.location.reload(); 
   }
</script>

1
không hoạt động nữa
Softlion

Khi ứng dụng phụ thuộc vào thời gian xây dựng. Có thể phá vỡ bởi thời gian chờ trình duyệt. Nhưng có thể làm việc để triển khai đến trang web.
Sergius Sizykh

1
@Softlion Tôi đã thử nghiệm giải pháp này và nó đang hoạt động. Tôi đã thêm ghi đè của recconnectectCallback vào _host.cshtml của tôi
Vortex852456

1
<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>

Điều này sẽ đợi cho đến khi nút tải lại xuất hiện và sau đó sẽ đợi cho đến khi máy chủ được sao lưu trước khi thực sự tải lại.

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


-1

Một mẹo mà một số người quên là bạn thực sự có thể "xem" cơ sở mã của mình để thay đổi, nếu bạn mở thiết bị đầu cuối yêu thích của mình và chạy dotnet run watch debugtrong cùng thư mục với tệp cproj, bạn nên xem các thay đổi của mình để khi bạn làm mới trình duyệt của mình, bạn nên chọn bất kỳ thay đổi nào đối với ứng dụng của bạn, hãy đọc thông tin chính thức: https://docs.microsoft.com/en-us/aspnet/core/tutorials/dotnet-watch?view=aspnetcore-3.1

Đồng hồ dotnet là một công cụ chạy lệnh .NET Core CLI khi các tệp nguồn thay đổi. Ví dụ: thay đổi tệp có thể kích hoạt biên dịch, thực hiện kiểm tra hoặc triển khai.

Hi vọng điêu nay co ich

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.