簡體   English   中英

Blazor 服務器 - websocket 連接失敗 1006 - PDF 查看器(文件大小為 13mb 到 20mb)

[英]Blazor Server - websocket connection to failed 1006 - PDF Viewer (with file size 13mb to 20mb)

今天是個好日子

我在使用 Blazor 服務器(ASP.NET Core)使用 pdf 查看器時遇到問題,當我們將其部署在暫存環境中時出現錯誤,文件類型為 Z437175BA4191210EE009 至 20,通常文件大小為 mb。

當我們的 QA 測試 pdf 查看器時,他遇到了這個錯誤:

“WebSocket 以狀態碼關閉:1006 ()”

pdf 查看器將無法工作。 這種情況很可能發生在使用公司的 VPN 時,因為每個人都在家工作,但是在辦公室使用直接網絡連接測試 pdf 查看器時,pdf 查看器正在工作

這是我調用 PDF 查看器的代碼:

后面的代碼:

//Get File from service
objFile = await myServices.GetFile(Id);
byte[] byteArray = objFile.Data;
PDFFilePath = await jSRuntime.InvokeAsync<string>("getBlobObject", Convert.ToBase64String(byteArray));

Javascript:

function getBlobObject(b64Data) {

const blob = base64ToBlob(b64Data, 'application/pdf');
const url = URL.createObjectURL(blob);


var setpdf = url;
return setpdf;

function base64ToBlob(base64, type = "application/octet-stream") {
    const binStr = atob(base64);
    const len = binStr.length;
    const arr = new Uint8Array(len);
    for (let i = 0; i < len; i++) {
        arr[i] = binStr.charCodeAt(i);
    }
    return new Blob([arr], { type: type });
}

}

Razor 頁面:

<div class="d-flex flex-wrap" id="div-pdf">
<iframe src="@PDFFilePath" type="application/pdf" width="100%" height="100%" style="overflow: auto;width:100%; height:746px;"></iframe>'

有沒有辦法來解決這個問題? 尤其是在使用公司的 VPN 訪問應用程序時? 有沒有更好的方法來解決這個問題?

謝謝大家和問候。

想法一

確保您已啟用LongPolling

options.Transports = HttpTransportType.WebSockets | HttpTransportType.LongPolling;

來自官方文檔

使用長輪詢后備傳輸無法通過 WebSockets 連接。 這可能是由於 VPN 或代理阻止了連接。

所以如果我們啟用 LongPolling,也許我們可以通過使用 LongPolling 來解決這個問題。

想法二

  1. 嘗試創建一個只有一頁的pdf文件,在vpn網絡下測試,看能否重現這個問題。

  2. 如果問題消失了,我們可以搜索更多關於在分頁中加載 PDF 文件的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM