Top Banner
WebRTC u PBZ video chatu Zoran Perak @ PBZ
22

JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

Jul 21, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

WebRTC u

PBZ video chatu

Zoran Perak @ PBZ

Page 2: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

2

Što je to WebRTC?

Web Real-Time Communication (WebRTC) je tehnologija koja omogućuje direktnu komunikaciju

između dva internetska preglednika (peer-to-peer)

– video + zvuk

– podaci

Media engine sa Javacript API-jem

Standard u nastajanju

– W3C: web API

– IETF: protokoli i formati

Page 3: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

Što WebRTC rješava?

Upravljanje videom i zvukom

– "dogovor" oko korištenog standarada kodiranja s drugom stranom (SDP)

– poništavanje jeke

– automatska prilagodba kvalitete raspoloživoj brzini komunikacije

Komunikacija s drugom stranom

– automatska uspostava veze

– korištenje "najkraćeg" puta

– zaobilaženje prepreka (STUN, TURN, ICE)

Sigurnost (DTLS, SRTP, STCP)

3

Page 4: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

Što WebRTC ne rješava?

Signalizacija

– nije dio standarda

– razmjena inicijalnih podataka potrebnih za uspostavu veze potpuno u domeni aplikacije

– WebRTC proizvodi sve potrebne podatke – aplikacija ih razmjeni sa drugom stranom

4

Page 5: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

Javascript API

Funkcionalnosti:

Pristup lokalnom mikrofonu i kameri

Komunikacija video i zvuka

Komunikacija podataka

5

Page 6: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

Javascript API

Objekti:

MediaStream (getUserMedia)

– pristup kameri, mikrofonu i ekranu

RTCPeerConnection

– kodiranje/dekodiranje videa/zvuka

– komunikacija s drugom stranom preko raznih mrežnih topologija

– dodavanje audio i video streamova

RTCDataChannel

– razmjena proizvoljnih podataka sa drugom stranom (P2P)

6

Page 7: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

MediaStream

Predstavlja video i audio stream

Može sadržavati više kanala

Dobiva se Javascript pozivom navigator.getUserMedia()

7

Page 8: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

MediaStream

8

Page 9: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

RTCPeerConnection

Kodiranje/dekodiranje videa i zvuka

Uspostavlja i održava stabilnu vezu sa drugom stranom (RTCPeerConnection objektom u drugom

pregledniku)

Prilagođavanje raspoloživoj brzini veze

Sigurnost

Inicijalno je potrebno odraditi signalizaciju (aplikacija):

– razmjena SDP paketa (offer – answer)

– razmjena ICE kandidata

9

Page 10: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

RTCPeerConnection

10

Page 11: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

RTCDataChannel

Isti API kao WebSockects

Vrlo mala latencija

Pouzdana ili nepouzdana komunikacija (UDP/TCP)

Sigurnost

11

Page 12: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

Arhitektura

12

Page 13: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

Aplikacija

13

Page 14: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

Pronalaženje puta...

14

Page 15: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

Sigurnost

DTLS (Datagram Transport Layer Security)

SRTP (Secure Real-time Transport Protocol)

15

Page 16: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

Desktop:

SDK

Android:

SDK

iOS:

SDK

Podrška

16

Page 17: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

17

Video chat @

Page 18: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

PBZ

Implementacija video chata unutar internet bankarstva

Korištenje postojećeg CCC rješenja (vanjski dobavljač)

– chat i video chat su samo dodatni kanal za komunikaciju

– poslovni procesi i infrastruktura se ne mijenjaju

Problem P2P komunikacije zbog sigurnosti

– nije moguća direktna veza između klijenta i agenta u CCC-u

– korištenje TURN servera

18

Page 19: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

PBZ

19

Page 20: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

PBZ

20

Page 21: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

PBZ

21

Page 22: JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

http://www.webrtc.org

http://www.html5rocks.com/en/tutorials/webrtc/basics/

http://simpl.info/

https://apprtc.appspot.com/

http://simplewebrtc.com/

https://webrtchacks.com/

22