WebRTC vs WebSocket: połączenie peer-to-peer czy serwer

WebRTC vs WebSocket

WebRTC vs WebSocket (a także webhooki i HTTP) | We.Inc

WebRTC vs WebSocket: media i kanały danych peer-to-peer kontra gniazdo klient-serwer, dlaczego WebRTC wciąż potrzebuje sygnalizacji, a także webhook vs WebSocket i HTTP vs WebSocket.

WebSocket utrzymuje jedno dwukierunkowe połączenie między przeglądarką a Twoim serwerem i każda wiadomość przechodzi przez ten serwer. WebRTC łączy przeglądarki bezpośrednio ze sobą, przesyłając dźwięk, obraz i dowolne dane szyfrowane za pomocą DTLS i SRTP. Często używa się ich razem: WebSocket przenosi wiadomości sygnalizacyjne, które zestawiają połączenie WebRTC.

Porównanie WebRTC i WebSocket

Wybierz w poniższym pomocniku, co budujesz, a wskaże pasującą technologię wraz z uzasadnieniem. Omawia też dwa pytania, które często mieszają się z tym: webhooki, które działają między serwerami, oraz zwykłe żądania HTTP.

Najczęściej zadawane pytania

Czy WebRTC zastępuje WebSockety?

Nie. WebRTC nie ma wbudowanego sposobu, by dwie przeglądarki się odnalazły, więc nadal potrzebujesz kanału do wymiany wiadomości konfiguracyjnych. Zwykle wybiera się WebSocket, choć MDN zaznacza, że zadziała dowolny transport.

Czy WebRTC może przesyłać zwykłe dane, a nie tylko obraz?

Tak. RTCPeerConnection.createDataChannel() otwiera kanał dla danych tekstowych lub binarnych między peerami, a jego API celowo przypomina API WebSocket, z metodą send() i zdarzeniem message.

Czym różni się webhook od WebSocketu?

Webhook to żądanie HTTP, które jeden serwer wysyła na adres URL innego serwera, gdy zajdzie zdarzenie, po czym połączenie się kończy. WebSocket to połączenie, które pozostaje otwarte, aby przeglądarka i serwer mogły stale się komunikować.

Czy WebSocket jest szybszy niż HTTP?

Przy wielu małych wiadomościach zwykle tak, bo handshake odbywa się raz, a każda kolejna wiadomość pomija nagłówki żądania. Do ładowania strony lub pliku właściwym narzędziem jest zwykłe HTTP, które korzysta z cache.

Czy WebRTC działa peer-to-peer nawet przy wielu osobach w rozmowie?

Każde połączenie łączy dwa peery, więc pełna siatka szybko rośnie wraz z dołączaniem osób. Wiele większych produktów do rozmów kieruje media przez serwer, który przekazuje strumienie, a ten działa poza samym przeglądarkowym API WebRTC.

Dlaczego WebRTC wciąż potrzebuje serwera

Webhook vs WebSocket

HTTP vs WebSocket

Zestawianie WebRTC przez WebSocket

Dzwoniący: utwórz ofertę i kanał danych

WebSocket tylko przekazuje wiadomości konfiguracyjne. Adres URL STUN to miejsce na wybrany przez Ciebie serwer.

Odbierający: odpowiedz i odbierz kanał

Druga strona otrzymuje kanał przez zdarzenie datachannel, zamiast go tworzyć.

Nieuporządkowany kanał bez ponowień dla stanu gry

Nie można ustawić jednocześnie maxRetransmits i maxPacketLifeTime, wybierz jedno.

Webhook vs WebSocket w skrócie

Webhook vs WebSocket

HTTP vs WebSocket w skrócie

HTTP vs WebSocket

Rozmowa wideo między dwiema osobami

WebRTC, z WebSocketem do sygnalizacji

Dźwięk i obraz powinny płynąć bezpośrednio między rozmówcami z niskim opóźnieniem. Mały serwer WebSocket przekazuje tylko ofertę, odpowiedź i kandydatów podczas zestawiania.

Pokój czatu grupowego w aplikacji webowej

WebSocket

Wiadomości trzeba przechowywać, moderować i wysyłać do wszystkich w pokoju, więc i tak należą do Twojego serwera. Jedno gniazdo na użytkownika to proste rozwiązanie.

Wysłanie dużego pliku do przeglądarki znajomego

Kanał danych WebRTC

Niezawodny, uporządkowany kanał danych przesyła bajty peer-to-peer, więc Twój serwer nigdy nie przechowuje ani nie przekazuje pliku, chyba że potrzebny jest TURN.

Szybkie ruchy w grze dla dwóch graczy

Kanał danych WebRTC, nieuporządkowany

Przy wyłączonym porządkowaniu i bez ponownych transmisji utracona aktualizacja pozycji jest pomijana, zamiast wstrzymywać nowsze. Jeśli potrzebujesz serwera sędziego, użyj zamiast tego WebSocketu do niego.

Operator płatności potwierdza zamówienie

Webhook

Serwer operatora wywołuje adres URL na Twoim serwerze, gdy płatność się powiedzie. Nie bierze w tym udziału żadna przeglądarka i nic nie musi pozostawać otwarte.

Załadowanie strony produktu i jej danych

Zwykłe HTTP

Wystarczy żądanie i odpowiedź, a odpowiedzi GET można cache'ować. Stałe połączenie dodałoby koszt bez żadnej korzyści.

Co budujesz?

Wybierz funkcję

Użyj

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony