Протокол буфера для JavaScript? - PullRequest
       2

Протокол буфера для JavaScript?

21 голосов
/ 16 августа 2011

Есть ли способ сделать буферы протокола в JavaScript?

Почему для .js?

Если на мгновение вы задумаетесь о научных требованиях, всплывают ситуации, когда вы, возможно, захотите отправитьбольшой блок данных для клиента.С CRUD-стилем не так уж важно, что вы используете.С научными вещами это имеет значение (по крайней мере, я так думаю).

компромиссы:

  • Protobuff хорошо уравновешивает компактность, сериализацию и десериализацию.

  • текстовые протоколы (xml / json)иметь больший размер сообщения ... но с javascript мне интересно, что более эффективно.

ссылка:

Дополнительные ссылки, предоставленные сообществом (см. ниже для получения дополнительной информации):

Ответы [ 3 ]

12 голосов
/ 18 августа 2011

Google интенсивно использует буферы протокола в JS (GMail и т. Д.) Через свою библиотеку Closure, генерируя код JS с измененным (к сожалению, не открытым исходным кодом) protoc (вероятно, должно быть перенес на расширение protoc до получения открытого кода).

Apache Wave (чье клиентское веб-приложение построено с GWT) также использует буферы протокола для связи с сервером, генерируя код Java, отражая классы Java, создаваемые protoc (это PST, также называемый protobuf-stringtemplate, подпроект).
Ранее Wave использовал protostuff (а я этого не делаюЯ знаю, почему они переключились на свое собственное решение. Я подозреваю, что PST основан на том, что использовалось в оригинальной версии Google Wave, а прототипы были лишь промежуточным этапом при переходе на open source).

В качестве примечания,Я начал изучать использование буферов протокола на стороне браузера некоторое время назад: http://blog.ltgt.net/exploring-using-protobuf-in-the-browser/ & http://blog.ltgt.net/using-protobuf-client-side-with-gwt с некоторым почти работающим кодом на http://code.google.com/p/protobuf-gwt/ того года.вам, возможно, захочется воскресить.

Наконец, ведется работа по обеспечению совместимости прокси-серверов GWT RequestFactory с серверными классами Java, сгенерированными с помощью protoc (и вы можете использовать расширение protoc или аналогичный подход кPST Wave для генерации ваших прокси RequestFactory).Это должно быть уже возможно при условии, что вы полностью используете компоновщики на стороне сервера (что не совсем так, как был разработан Java API-интерфейс для буферных протоколов).

8 голосов
/ 16 августа 2011

Исторически javascript затруднял работу с двоичным файлом, что, вероятно, частично объясняет относительную нехватку инструментов - но с массивами, типизированными для javascript, теперь это может быть намного проще. Я согласен, что если у вас есть для получения того же объема данных (в каком-либо формате), использование меньшей пропускной способности является плюсом - но перед тем, как что-либо предпринимать, вам нужно проверить, что пропускная способность / обработка была фактическое узкое место (и если пропускная способность: вы пробовали сначала gzip / deflate).

Я фанат protobuf - и я бы с радостью увидел в нем более мощные инструменты на стороне браузера, но json настолько вездесущ, что вам понадобится веская причина, чтобы бросить вызов статус-кво. Также; думать "JSONP".

7 голосов
/ 14 апреля 2012

Я искал protobuf для javascript. Здесь есть проект: https://github.com/dcodeIO/ProtoBuf.js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...