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);

Сообщение об ошибке отображается как неправильный текст заголовка

После этой неудачной попытки я даже попробовал это, но даже это не помогло

Дополнительные справочные материалы сторонних разработчиков - не уверен, поможет ли это

0 ответов

Другие вопросы по тегам