Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 May 20

AS

Alexey Shultsev in NodeUA - JavaScript and Node.js in Ukraine
Догнал, кажется
Мы вызываем res.end(), после чего у нас становится writableEnded = true.
Затем, когда все данные "has been flushed to the underlying system" у нас становится writableFinished = true.
А это в свою очередь эмитает событие finish
И так как end у нас содержит асинхронные операции, то на этот момент у нас уже будет зарегистрирован обработчик на событие finish
источник

AS

Alexey Shultsev in NodeUA - JavaScript and Node.js in Ukraine
Мне просто на первый взгляд показалось, что должно эмитаться событие finish до того, как мы зарегистрировали на него обработчик
источник

AS

Alexey Shultsev in NodeUA - JavaScript and Node.js in Ukraine
Поправьте меня, если я неправ
источник

N

NetCat in NodeUA - JavaScript and Node.js in Ukraine
а почему ты решил что это должна обязательно быть строка?
1f 8b похоже на gzip архив
источник

ВП

Василий Петров... in NodeUA - JavaScript and Node.js in Ukraine
А что по вашему должно быть на выходе? По содержимому буфера видно, что это не текст.
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
в документации написано что это должен быть джейсон )
Я как бы доверяю документации )

но судя по тому что у меня не вышло, хотелось бы понять как это открыть
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Возможно это gzip нутый json
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Что вы шлете в Accept
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Посмотрите заголовки ответа на предмет deflate / gzip
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
Я не совсем понимаю как это сделать. У меня просто открывается сокет а дальше я туда шлю запрос
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
у меня вебсокет. библиотека WS
источник

ВП

Василий Петров... in NodeUA - JavaScript and Node.js in Ukraine
Попробуйте прогнать через zlib.gunzip(buffer[, options], callback). Если с потоками умеете, то через пайп в zlib.createGunzip().
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Да вроде прав
Можно посмотреть исходники, если так важно понять все детали
github.com/nodejs/node/blob/master/lib/_http_outgoing.js#L831
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
ганзип даёт ошибку.

сейчас попробую в zlib.createGunzip().
источник

L

Leon in NodeUA - JavaScript and Node.js in Ukraine
utf8decoder.decode
источник

ВП

Василий Петров... in NodeUA - JavaScript and Node.js in Ukraine
Обратите внимание на содержимое буфера. В нем нет текста и нет юникода. Чем поможет utf8decoder?
источник

AS

Alexey Shultsev in NodeUA - JavaScript and Node.js in Ukraine
Спасибо, про исходники не подумал
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
внезапно! почему то заработало!


zlib.gunzip(data, function(err, dezipped) {
     console.log(dezipped.toString());
});
источник

ВП

Василий Петров... in NodeUA - JavaScript and Node.js in Ukraine
Отлично. Теперь одно из двух, либо научиться выключать сжатие в соединении через заголовки, либо научиться опознавать сжатие (может случиться что по каким-то причинам придет несжатый текст). Т.е. лучше явно проконтролировать в каком формате идет обмен.
источник

L

Leon in NodeUA - JavaScript and Node.js in Ukraine
А, точно. На автомате.
источник