2013-07-11 13 views
13

Czy można używać kanałów danych WebRTC na Node.js w sposób imitujący funkcjonalność (i korzystnie interfejs API) Socket.io (WebSockets) z wyjątkiem korzystania z UDP?Serwer danych sieci WebRTC do klientów Komunikacja UDP

W istocie chcę mieć serwer z uruchomionym Node.js, za pomocą którego klienci przeglądarki mogą ustanowić dwukierunkowe połączenie UDP w pełnym dupleksie za pośrednictwem JavaScript.

Odpowiedz

8

Jest to moduł WebRTC dla node.js: https://js-platform.github.io/node-webrtc/

Instalacja może być naprawdę kłopotliwe (co najmniej), ale jeśli uda będziesz w stanie dokonać node.js akt serwer jako WebRTC współpracuje tak, jak robią to przeglądarki. W ten sposób będziesz mógł otworzyć kanał danych między przeglądarką a serwerem node.js.

Mamy to w użyciu w naszym projekcie badawczym, aby ocenić właściwości wydajności.

+0

Czy istnieje interfejs do połączenia serwera node.js z wieloma klientami przeglądarki i obsługi ich w podobny sposób wielu klientów websocket jest obsługiwanych w Socket.io? – Willem

+1

Być może mógłbyś użyć jednego z wrapperów JS WebRTC. Problem z owijkami takimi jak webrtc.io czy orca.js polega na tym, że są one zbudowane do użycia w przeglądarkach, więc prawdopodobnie musiałbyś je dostosować, aby były używane po stronie serwera. – Makkes

+0

Więc te opakowania pozwalają klientowi przeglądarki działać jako punkt końcowy w komunikacji z wieloma innymi przeglądarkami? – Willem

4

Tak, teoretycznie powinieneś być w stanie to zrobić. Potrzebny jest jednak moduł węzła, który obsługuje kanały danych WebRTC, aby można było połączyć się z nim tak, jak każdy inny węzeł równorzędny. Niestety, skanując przez current modules, nie widzę takiego, który implementuje kanał danych.

Inną rzeczą jest, aby pamiętać, kanały danych WebRTC może być skonfigurowany dla różnych reliability modes z niezawodny sposób realizowany z SCTP (Firefox i Chrome).

Podczas testowania kanałów danych zalecam korzystanie z Firefoksa, ponieważ praca WebRTC została podzielona tak, że Chrome początkowo koncentrował się na PeerConnection i Firefox na DataChannel (więc Firefox jest wciąż na zaawansowanym etapie wdrażania DataChannel).

+0

Dziękuję, to potwierdza moje podejrzenia. Mam nadzieję, że ktoś stworzy moduł, który naśladuje interfejs API Websockets z obsługą wielu podłączonych klientów. – Willem

+1

Jestem najbardziej zainteresowany trybem niewiarygodne (0 retransmitów). Czy WebRTC obsługuje to poprzez SCTP lub coś innego? – Willem

+1

Myślę, że tryb niepewności został początkowo zbudowany na [RTP w Chrome] (https://code.google.com/p/webrtc/issues/detail?id=1494), ale wszystko będzie [ostatecznie będzie oparte na SCTP] (https://code.google.com/p/webrtc/issues/detail?id=1430). Biblioteka SCTP, z której Mozilla korzysta z kanałem danych, znajduje się tutaj: https://code.google.com/p/sctp-refimpl/ –