W artykule przedstawiono budowę klienta sygnalizacji współpracującego z prostym serwerem sygnalizacyjnym. Klient taki może być prostym klientem, wymagającym jedynie podstawowej sygnalizacji, lub bardziej złożonym. Jako przykład systemu o większym stopniu złożoności pokazano aplikację zgodną z architekturą WebRTC. W artykule przedstawiona została przykładowa komunikacja pomiędzy klientem i serwerem zebrana podczas sesji WebRTC. Artykuł zawiera również przykłady dwóch rozwiązań aplikacji czatu internetowego, które wykorzystują ten sam interfejs użytkownika oraz ten sam system sygnalizacji (drugie rozwiązanie rozszerza pierwsze o obsługę komunikatów sygnalizacyjnych techniki WebRTC), różnią się natomiast sposobem transmisji danych użytkownika (wiadomości tekstowych czatu). W pierwszym rozwiązaniu dane użytkownika przenoszone są kanałem sygnalizacyjnym (via serwer sygnalizacyjny) z wykorzystaniem interfejsu WebSocket. W drugim rozwiązaniu dane użytkownika przenoszone są bezpośrednio pomiędzy przeglądarkami (kanałem WebRTC przeznaczonym do transmisji danych niemedialnych) z wykorzystaniem interfejsu RTCDataChannel techniki WebRTC.
EN
A simple signalling server, written in JavaScript and running in node.js run-time environment, was presented in the previous paper of the Authors [3]. In this paper, principles of building of WebRTC signalling client are presented, as well as exemplary communication between the client and the server, captured with the use of WireShark software tool during experimental WebRTC sessions. The paper includes also an example of application of Internet chat, that uses the simple signalling server [3]. The chat was builreneusz in two versions, which uses the same user interface and their signalling systems were build according to the same methodology, but differs in method of transmission of chat messages. The first version transmits user data (text messages of the chat) via signalling server, with the use of signalling channel. This version uses WebSocket interface for transmission of chat messages. In the case of the second version, user data are transmitted directly between web browsers, using WebRTC's channel dedicated for transmission of nonmedia data. This version transmits chat messages with the use of WebRTC's RTCDataChannel interface.
Technika WebRTC, bazująca na językach HTML5 i JavaScript, umożliwia natywną transmisję informacji multimedialnej w czasie rzeczywistym pomiędzy przeglądarkami WWW. Chociaż same strumienie mediów, a także transmisje niemedialne (obecne w architekturze WebRTC, choć nie wymagające czasu rzeczywistego), przesyłane są bezpośrednio pomiędzy przeglądarkami, do przesyłania informacji niezbędnych do zarządzania sesją (a konkretniej: nawiązywania sesji) potrzebny jest serwer sygnalizacyjny. Serwer taki może być traktowany jako punkt spotkań dwóch lub więcej systemów końcowych wykorzystujących technikę WebRTC. W artykule przedstawiono zasady budowy takiego serwera za pomocą aplikacji tworzonych w języku JavaScript i uruchamianych w środowisku node.js. Omówiono środowisko node.js oraz pokazano przykład prostego serwera sygnalizacyjnego, budowanego na potrzeby wymiany komunikatów i (lub) inicjowania (wideo)telefonii lub (wideo)konferencji z małą liczbą terminali. Serwer ten łączy uczestników tylko w ramach pojedynczej sesji 1-do-1 lub wielu-do-wielu. Pomimo dużej prostoty, przykładowy serwer jest w pełni funkcjonalnym serwerem sygnalizacyjnym WebRTC, umożliwiającym realizację, między innymi, (wideo)telefonii pomiędzy przeglądarkami używającymi WebRTC.
EN
Web Real-Time Communications (WebRTC) technology is an enabler of native transmission of multimedia information between two and more Web browsers. WebRTC is based on HTML version 5 (HTML5) and JavaScript languages. Although both real-time media streams (audio, video) and non-real-time non-media flows (also present in WebRTC architecture) are transmitted directly between browsers, to enable transmission of information necessary for session management (and more precisely: session establishment) purposes, a signalling server is needed. Such server may be regarded as a rendez-vous point of end systems that use WebRTC technology. In this paper, node.js run-time environment and principle of building of Webrtc signalling server with the use of scripts written in JavaScript and run in node.js are presented. Example of script of a simple signalling server also is shown. The exemplary server connects users of one and only session, although this session may serve not only one-to-one, but also many-to-many connections. Despite its simplicity, this is a fully functional signalling server, able to serve signalling messages for purposes of message exchange, or for purposes of initialization of WebRTC-based Internet telephony or simple conferencing systems.
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.