Top Banner
WebSockets & WebRTC Federico Pinna @0xfede
25

Realtime Web Apps: WebSockets & WebRTC

May 11, 2015

Download

Software

VivochaLabs

https://github.com/0xfede/VTE_WSWRTC

A free and informal technical introduction to realtime web applications using WebSockets and WebRTC.

Federico Pinna
@ Vivocha Tech Evenings
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: Realtime Web Apps: WebSockets & WebRTC

WebSockets & WebRTCFederico Pinna

@0xfede

Page 2: Realtime Web Apps: WebSockets & WebRTC

Agenda• Real-time apps and asynchronous events

• Comet, WebSockets and socket.io

• Web Real-time Communication

• Signalling

• Data Channels & Media Stream

Page 3: Realtime Web Apps: WebSockets & WebRTC

HTTPclient server

request

response

Page 4: Realtime Web Apps: WebSockets & WebRTC

Data Pushclient server

event

Page 5: Realtime Web Apps: WebSockets & WebRTC

HTTP pollingclient server

request

response

request

response

request

response

Page 6: Realtime Web Apps: WebSockets & WebRTC

Comet

AKA: Ajax Push, HTTP Streaming, HTTP Server Push

• Hidden iframe

• Long-polling

Page 7: Realtime Web Apps: WebSockets & WebRTC

HTTP long-pollingclient server

request

request

response

Page 8: Realtime Web Apps: WebSockets & WebRTC

WebSocketclient server

request + upgrade

response

Page 9: Realtime Web Apps: WebSockets & WebRTC

WebSocketclient server

frames

Page 10: Realtime Web Apps: WebSockets & WebRTC

WebSocket

ws = new WebSocket(url);

ws.onmessage = function(data) { }

ws.send(data);

Page 11: Realtime Web Apps: WebSockets & WebRTC

socket.io

• Comet & WebSocket

• Client & Server modules

• Super stable & efficient

Page 12: Realtime Web Apps: WebSockets & WebRTC

Let’s code

Page 13: Realtime Web Apps: WebSockets & WebRTC

WebRTC

• Real-time Communication Between Browsers

• Media Capture And Streams

Page 14: Realtime Web Apps: WebSockets & WebRTC

• RTCPeerConnection

• getUserMedia()

WebRTC

Page 15: Realtime Web Apps: WebSockets & WebRTC

WebRTC

Client Clientdata

Page 16: Realtime Web Apps: WebSockets & WebRTC

WebRTC

Client Client

nat/fw

Page 17: Realtime Web Apps: WebSockets & WebRTC

WebRTC

Client Client

nat/fw nat/fw

Page 18: Realtime Web Apps: WebSockets & WebRTC

• Interactive Connectivity Establishment, ICE

• Session Traversal Utilities for NAT, STUN

• Traversal Using Relays around NAT TURN

WebRTC

Page 19: Realtime Web Apps: WebSockets & WebRTC

WebRTC

Client Client

STUN

probe probe

Page 20: Realtime Web Apps: WebSockets & WebRTC

WebRTC

Client Clientdata

STUN

Page 21: Realtime Web Apps: WebSockets & WebRTC

WebRTC

Client Client

STUN TURN

data data

Page 22: Realtime Web Apps: WebSockets & WebRTC

WebRTC

Client Clientdata

STUN TURN

data data

Page 23: Realtime Web Apps: WebSockets & WebRTC

WebRTCclient client

SDP offer

SDP answer

ICE candidate

ICE candidate

Page 24: Realtime Web Apps: WebSockets & WebRTC

Let’s code

Page 25: Realtime Web Apps: WebSockets & WebRTC

Thank you!