2014-02-20 1 views
3

Я работаю над приложением, которое будет отправлять управляющие сообщения OSC, которые, как я понимаю, пакет датаграммы, с веб-страницы на приемник OSC (сервер), например, Max/MSP или Node или любой другой.Должен ли я использовать WebRTC или Websockets (и Socket.io) для связи OSC

Я знаю, что обычно используется UDP, потому что скорость важна для работы в реальном времени/аудио визуального контроля, выполняемой с OSC (что также является работой, которую я буду делать), но я знаю, что другие методы могут быть использованы.

Прямо сейчас, например, я отправляю OSC из браузера на node.js-сервер (используя socket.io), а затем с сервера node.js на Max (который в конечном итоге нуждается в данных) тоже используя гнездо.io. Я считаю, что это означает, что я использую websockets, и задержки/задержки не были плохими.

Мне любопытно, хотя теперь, когда WebRTC отсутствует, если я буду размещать будущее своей работы там. Во всей моей работе с OSC я всегда использовал UDP и использовал только соединение Socket.io/Websockets, потому что я не знал о WebRTC.

Любые советы о том, что я должен делать. В частности, меня интересует

1. Как я мог отправлять сообщения OSC из браузера непосредственно на сервер OSC (в отличие от первого сервера узла)

2. Если я должен оставаться с узлом/гнездом. io/метод Websocket для отправки данных OSC или я должен смотреть в WebRTC?

ответ

3

Это не вопрос о какой-либо конкретной технической проблеме, а проблема обнаружения. И в значительной степени основано мнение.

Но я постараюсь представить свои мысли, поскольку другие могут быть полезны.

  • Если сервер OSC поддерживает WebSockets или соединение WebRTC, вы можете использовать один из них непосредственно к нему.
  • Основываясь на характере браузеров, вам, вероятно, необходимо поддерживать многие протоколы, а не конкретные. Так как многие браузеры имеют разную поддержку: http://caniuse.com/rtcpeerconnection, если ваши пользователи не могут «принудительно» использовать определенный браузер.
  • WebRTC должен быть высокопроизводительным. Я не уверен, что это хорошо сравнить с UDP вообще, так как это намного больше, чем UDP в сравнении, а реализация варьируется (внутри) для каждого браузера.
  • Вам нужно поговорить с сервером, а не между клиентами, в то время как WebRTC в основном предназначен для одноранговой связи. Таким образом, вам необходимо точно изучить преимущества производительности от латентности, а также точки процессора на стороне сервера.

Преимущество UDP является тем фактом, что некоторые пакеты могут быть сброшены/пропущено/сданными, как это не «обязательные» данные, такие как фоторамки или часть звука, что только результаты по снижению качества, что является " ожидаемого "поведения в потоковом мире. WebSockets обеспечит доставку данных, а «цена» - это механика, которая в конце замедляет очередь пакетов, чтобы обеспечить упорядоченную и гарантированную доставку данных.

3

Что касается вашего первого вопроса - если есть решение для связи директ WebSocket между браузером и сервером (для OSC) - вы можете посмотреть в это:

я опубликовал OSC-JS библиотеки утилиты, которая делает то же самое с UDP/WebSocket моста плагиным:

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