2015-06-08 6 views
0

Я пытаюсь уменьшить ширину полосы пропускания при использовании веб-узлов. Я переключился на двоичные данные, но, глядя в консоли разработчика браузера, пакеты посылаются как:Как отправить необработанные данные с помощью socket.io

[ 'type of the packet (first argument of .emit)', associated data ] 

Я использую только один тип пакета, так что это вызывает излишнюю нагрузку - бесполезные байты посланы и все дело json закодирован без причины.

Как я могу избавиться от типа пакета и просто отправить необработанные данные?

ответ

1

socket.io - это абстракция сверху webSocket. Чтобы поддерживать предоставляемые функции, он добавляет некоторые служебные сообщения. Имя сообщения является одной из таких накладных расходов, поскольку это система обмена сообщениями, а не только система доставки пакетов.

Если вы хотите выжать все байты из транспорта, то вам, вероятно, нужно избавиться от socket.io и просто использовать простой webSocket, где вы будете контролировать больше содержимого каждого пакета (хотя вам придется переопределить некоторые вещи что socket.io делает для вас).

С socket.io в node.js вы можете отправить двоичный файл, отправив ArrayBuffer или Buffer. В браузере вы можете отправить двоичный файл, отправив ArrayBuffer или Blob.

+1

Ссылка не работает. Может быть, я должен использовать 'webSocket' вместо этого. – newguy

+0

Убрали ссылку и заменили ее контентом. – jfriend00

 Смежные вопросы

  • Нет связанных вопросов^_^