При подключении через WebSocket я получаю двоичный кадр как этот , и мне сказали, что полученные данные находятся в формате GZIP.Я работаю в VueJS, поэтому мой код - код JavaScript.Когда я пытаюсь увидеть полученный ответ в окне console.log , я вижу, что этот BLOB-объект был получен.
Теперь мне нужно получить этоBlob и распаковать его, чтобы я мог позже использовать данные, которые находятся внутри него.Я не уверен, что является правильным подходом для этого, и я попробовал много вещей, как:
var readerArrayBuffer = new FileReader();
readerArrayBuffer.addEventListener("loadend", function() {
console.log(readerArrayBuffer.result);
});
readerArrayBuffer.readAsArrayBuffer(responseObj);
и те же соответствующие методы readAsArrayBuffer
, readAsBinaryString
andrreadAsText
из следующих ссылка , но никто из них не возвращает данные, сжатые внутри этого файла Blob.
Затем я также попытался создать файл из Blob и распаковать его, используя библиотеку, которую янайдено в этом посте как:
let newFile = new File([responseObj], "filename.gzip"); //also tried with "filename.gz"
let uncompressed = require('gzip-js').unzip(newFile);
Возможно, упомянутый выше пост может быть полезным, но я не могу понять, как использовать его для моей проблемы.
Итак, мой вопрос: Как мне распаковать поток BLOB-объектов (в JavaScript), который фактически представляет содержимое файла GZIP?