Почему Node.js отправляет данные без сжатия?

1) Данные от браузера идут в сжатом виде. (прямо пакет). Пакет 50 байт без заголовка.
2) Ответ от сервера упорно идет в несжатом виде. Пакет 250 байт без заголовка.

Как сделать, чтобы он отдавал сжатые данные.

socket.compression(true).emit - не помогает.
socket.io 1.7.1

var express = require('express');
var io = require('socket.io');
var http = require('http');

var app = http.createServer();
var io = io.listen(app);
app.listen(3000);

io.sockets.on('connection', function (socket) {
  • Вопрос задан
  • 916 просмотров
Пригласить эксперта
Ответы на вопрос 3
@iShatokhin
JS developer
В данный момент сжатие отключено в настройках, т.к. приводит к утечкам памяти. Можно попытаться включить обратно через:
{ perMessageDeflate: true }

Про проблему можно почитать здесь:
https://github.com/websockets/ws/issues/804
Ответ написан
Комментировать
@azabalkanskiy
я недавно нодой занимаюсь могу тупить но по моему express сам не сжимает ответы попробуй подключить require('compression')

var compression = require('compression')
var express = require('express')

var app = express()

// compress all requests
app.use(compression())
Ответ написан
akzhan
@akzhan
Вам в любом случае желательно перед node поставить HA Proxy или nginx.

Отдайте сжатие ему. Заодно можете добавить современное Brotli-сжатие.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы