От новичка до гуру: Курсы программирования на CyberDuff

Буферы протокола для JavaScript?

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

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

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

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

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

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

ссылка:

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


  • ты. Добавил это как ссылку. 16.08.2011
  • Я наткнулся на другой проект Protocol Buffers для JavaScript. Похоже, он активен и полагается на closure библиотеку Google: code.google.com/p / protobuf-plugin-closure 16.08.2011
  • ты. По крайней мере, к этому есть некоторый интерес. Иногда я удивляюсь, почему люди больше не объединяют силы. 16.08.2011
  • @AndrewBarber после обзора, возможно, ваше возражение заключалось в том, что вопрос был начат в болтливой форме. С тех пор, как вопрос был впервые написан, сообщество JS значительно развилось. Однако в JavaScript по-прежнему необходима первоклассная поддержка протобуфера. Думаю, вопрос все еще актуален. 21.11.2013

Ответы:


1

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

14.04.2012
  • благодаря. Я буду следить за этим проектом. В будущем я хотел бы поддержать что-то подобное. Скрестим пальцы, что появится способная библиотека. 15.04.2012
  • С момента выпуска 0.0.0 в 2008 году ничего не изменилось. ладно конечно. Вы экспериментировали с этим? 23.08.2012
  • Извините, я давно не работал над этим. Не могу много ответить. Насколько я помню, он делал то, что рекламировал. У меня этого нет в производстве, поэтому я не могу поручиться за это с уверенностью. 23.08.2012
  • Это лучшая библиотека js protobuf, которую я нашел. В настоящее время его использую, и он хорошо работает. 14.10.2013
  • Кажется, действует недавно (2014). С 11 выпусками, 21 открытыми и 127 закрытыми выпусками wiki кажется недостаточно богатой. 15.08.2014

  • 2

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

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

    Кстати, некоторое время назад я начал изучать использование протокольных буферов на стороне браузера: 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). Это уже должно быть возможно, при условии, что вы полностью используете построители на стороне сервера (что не совсем так, как был разработан API-интерфейс протокольных буферов Java).

    18.08.2011
  • Я начал думать о проблемах кроссбраузерности для JavaScript-версии protobufs. Было ли у вас много проблем с этим при тестировании? 19.08.2011
  • На самом деле мы остановились на другой архитектуре и вообще не использовали протоколы буферов, так что как таковое тестирование проводилось не так уж много. Но большинство, если не все кроссбраузерные проблемы (связанные с кодированием / декодированием сообщений в JSON и транспортировкой вашего сообщения в кодировке protobuf / json (XMLHttpRequest)) будут решены либо Closure, либо GWT (или JS lib из твой выбор). 20.08.2011
  • извините ... переключился с вашего информативного ответа на ответ dcode. Похоже, состояние js proto меняется. 09.03.2013

  • 3

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

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

    16.08.2011
  • взглянул на jsonp. Хорошая техника. Спасибо за напоминание о gzip ... жаль вводить дополнительные представления + шаги. 16.08.2011
  • @sgtz Моя точка зрения относительно jsonp заключается в том, что jsonp решает конкретную проблему, связанную с тем же происхождением; Я не уверен, как можно решить ту же проблему с исходными данными. 16.08.2011
  • Новые материалы

    Отслеживание состояния с течением времени с дифференцированием снимков
    Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

    Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
    Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..

    Игра в прятки с данными
    Игра в прятки с данными Я хотел бы, чтобы вы сделали мне одолжение и ответили на следующие вопросы. Гуглить можно в любое время, здесь никто не забивается. Сколько регионов в Гане? А как..

    «Раскрытие математических рассуждений с помощью Microsoft MathPrompter и моделей больших языков»
    TL;DR: MathPrompter от Microsoft показывает, как использовать математические рассуждения с большими языковыми моделями; 4-этапный процесс для улучшения доверия и рассуждений в математических..

    Раскройте свой потенциал в области разработки мобильных приложений: Абсолютная бесплатная серия
    Глава 6: Работа в сети и выборка данных Глава 1: Введение в React Native Глава 2: Основы React Native Глава 3: Создание пользовательского интерфейса с помощью React Native Глава 4:..

    Все о кейсах: Camel, Snake, Kebab & Pascal
    В программировании вы сталкивались с ними при именовании переменной, класса или функции. Поддержание согласованности типов и стилей случаев делает ваш код более читабельным и облегчает совместную..

    Как работает дистанционное парное программирование и почему оно может изменить вашу жизнь
    Серебряная пуля от одиночества и отвлекающих факторов во время обучения программированию Независимо от того, работаете ли вы или учитесь удаленно, велика вероятность, что одиночество и..