Как включить сжатие каналов в Phoenix?

У меня есть канал в phoenix, который выталкивает ~ 4 Кбайт данных, многие из которых сильно повторяются и задавались вопросом, есть ли способ включить сжатие для этого канала.

Это выглядит довольно просто, если я работал с контроллером phoenix, но мне не удалось выяснить, возможно ли это или где-то документально зарегистрировано для канала.

Спасибо, куча.

Ответ 1

Вы можете настроить сжатие gzip для ответов от конкретной конечной точки.

config :app_name, AppName.Endpoint,
  http: [compress: true]

Ответ 2

Как указано в настройке Endersstocke http: [compress: true] в конфигурации конечной точки, событие для веб-узлов. Однако существуют некоторые ограничения:

Phoenix в текущей версии (1.3.0) или более конкретно: cowboy (1.1) поддерживает только сжатие x-webkit-deflate-frame для веб-узлов. Из моих тестов я видел, что только Safari отправляет эти заголовки запросов в Chrome, вы не будете испытывать никакого сжатия вообще.

Итак, если вы хотите иметь сжатие permessage-deflate, вам придется подождать до Cowboy 2.0. См. docs