Подтвердить что ты не робот

В чем разница между WebRTC и WebSockets для передачи данных низкого уровня

Я пытаюсь понять разницу между WebRTC и WebSockets, чтобы я мог лучше понять, какой сценарий требует для чего. Мне интересно узнать о широкой идее двух сторон (в основном, основанных на Интернете, но, возможно, одного из них, являющихся выделенным серверным приложением), разговаривающих друг с другом.

Предположение:

  • Очевидно, что в отношении сетей ad-hoc WebRTC выигрывает, поскольку он поддерживает протокол ICE/метод.

Вопросы:

  • Что касается прямой связи между двумя известными сторонами в браузере, если я не полагаюсь на отправку мультимедийных данных, и меня интересует только отправка целочисленных данных, дает ли WebRTC какие-либо преимущества по сравнению с веб-сайтами, отличными от шифрования данных?
  • Что касается выделенного сервера, говорящего с клиентом на основе браузера, какая платформа дает мне преимущество? Мне нужно будет закодировать сервер WebRTC (возможно ли это из браузера?), Или мне нужно будет закодировать сервер WebSocket (быстрый поиск в Google заставляет меня думать, что это возможно).
4b9b3361

Ответ 1

WebRTC определяет перенос медиа по RTP.., который может работать P2P при определенных обстоятельствах. В любом случае, чтобы установить сеанс webRTC, вам понадобится протокол сигнализации.. и для этого WebSocket является вероятным выбором. Другими словами: если вы не хотите передавать медиа в реальном времени, WebSocket, вероятно, лучше подходит.

Ответ 2

Существует одна существенная разница: Websockets работает через TCP, WebRTC работает через UDP. Фактически, WebRTC является протоколом SRTP с некоторыми дополнительными функциями, такими как STUN, ICE, DTLS и т.д. И внутренними функциями VoIP, такими как Adaptive Jitter Buffer, AEC, AGC и т.д.

Итак, Websocket предназначен для надежной связи. Хорошо, если вы хотите отправить любые данные, которые должны быть отправлены надежно.

При использовании WebRTC передаваемый поток ненадежен. Некоторые пакеты могут быть потеряны в сети. Плохо, если вы отправляете важные данные, например, для финансовой обработки, такая же проблема идеально подходит при отправке аудио- или видеопотока, где некоторые кадры могут быть потеряны без каких-либо заметных проблем с качеством.

Если вы хотите отправить канал данных через WebRTC, у вас должен быть алгоритм прямой коррекции ошибок для восстановления данных, если в сети был потерян кадр данных.

Ответ 3

Вопрос 1: Да. Часть DataChannel WebRTC дает вам преимущества в этом случае, поскольку она позволяет создавать одноранговый канал между браузерами для отправки и получения любых необработанных данных, которые вы хотите. Websockets заставляет вас использовать сервер для подключения обеих сторон.

Вопрос 2 Как я уже сказал в предыдущем ответе, Websockets лучше, если вы хотите общаться с сервером и клиентом, и есть много реализаций для этого (т.е. jWebSocket). Чтобы добавить поддержку на сервере для установления соединения с DataChannel WebRTC, это может занять несколько дней жизни и здоровья.:)