GZIP base64 декодирование в веб-работнике
Я подключаюсь к стороннему соединению websocket в веб-работнике. Я получаю сообщение в кодировке base64 и GZipped. Пожалуйста, посмотрите образец сообщения
var receivedMsg = 'XYw7DoAgEAXv8uqVgHwiW4qtJgoWamy9BOHuop1OM81kMkYw1jg0fQogTODOak/YwUdG2sCKsICddVZ4I18IM1gKWeiTmNYIpX/JSYj1VXU9Kjc=';
Окончательный результат должен выглядеть примерно так:
{
MarketName : string,
Nonce : int,
Buys:
[
{
Quantity : decimal,
Rate : decimal
}
],
Sells:
[
{
Quantity : decimal,
Rate : decimal
}
],
Fills:
[
{
Id : int,
TimeStamp : date,
Quantity : decimal,
Price : decimal,
Total : decimal,
FillType : string,
OrderType : string
}
]
}
Теперь я попытался использовать библиотеки pako и atob для эмуляции примера здесь, но я получаю ошибку
PS: пожалуйста, помните, что веб-работник не имеет доступа к окну, поэтому не может использовать нативный браузер.
// Decode base64 (convert ascii to binary)
const strData = new Buffer(receivedMsg , 'base64').toString('binary');
// Convert binary string to character-number array
const charData = strData.split('').map(function(x){return x.charCodeAt(0);});
// Turn number array into byte-array
var binData = new Uint8Array(charData);
// Pako magic
var data = pako.inflate(binData);
console.log(strData);
Сообщение об ошибке отображается как неправильный текст заголовка
После этой неудачной попытки я даже попробовал это, но даже это не помогло
Дополнительные справочные материалы сторонних разработчиков - не уверен, поможет ли это