web sockets

22
WebSocke ts Докладчик: Лисицкий Евгений «Спорт Сегодня»

Upload: eugene-lisitsky

Post on 23-Jun-2015

3.821 views

Category:

Technology


3 download

DESCRIPTION

Что такое Веб Сокеты? Почему они нужны вам

TRANSCRIPT

Page 1: Web sockets

WebSockets

Докладчик: Лисицкий Евгений«Спорт Сегодня»

Page 2: Web sockets

Структура доклада:1.Работа интерактивного веба 2.Преимущества WebSockets.3. Сравнение со стандартными

технологиями.4.Техническая сторона вопроса5.Примеры реализации

Page 3: Web sockets

Схема работы:ТРАНСПОРТ

СЕРВЕР КЛИЕНТ

Page 4: Web sockets

Популярные реализации:• Erlang: MochWeb, Misultin • JavaScript: NodeJS• Perl: AnyEvent, Coro, POE • Python: Twisted, Tornado• Ruby: EventMachine и другие

Page 5: Web sockets

Схема работы:HTTP

ТРАНСПОРТ

СЕРВЕР

разные языки

КЛИЕНТ

JavaScript

Page 6: Web sockets

Интерактивность:• Минимальная латентность

• Асинхронность

Page 7: Web sockets

Ограничения НТТР при интерактивной работе:1. Синхронность

2. Жесткое распределение «клиент»-ведущий и «сервер»-ведомый

3. Низкая эффективность при передаче большого количества маленьких по объему данных

Page 8: Web sockets

Диаграмма работы НТТРКЛИЕНТ

СЕРВЕР

ВРЕМЯ

ведущий

ведомый

Page 9: Web sockets

КПД НТТРКПД НТТР Comet ~ 0,5…10 %

кпд паровоза= 7%

Page 10: Web sockets

Преимущества WebSockets

• Входит в HTML5, будет стандартом W3C• Двунаправленная передача данных (full-

duplex)• Асинхронность

Page 11: Web sockets

Передача данных:АСИНХРОННОСТЬ

FULL

-

DUPLEX

Page 12: Web sockets

Преимущества WebSockets

4. Низкие требования к сетевым ресурсам, максимальный КПД передачи данных,

минимум «накладных расходов»5. Время жизни канала в неактивном состоянии;6. Возможность работы с разными доменами;7. Неограниченное количество подключений к одному

домену.8. Очень простое API (интерфейс)

Page 13: Web sockets

JavaScript-объект:ws = new WebSocket("ws://site.com/demo");

ws.onopen = function() { alert("Connection opened...") }; ws.onclose = function() { alert("Connection closed...") }; ws.onmessage = function(evt) { alert(evt.data) };

ws.send(“Text…”);

Page 14: Web sockets

GET-запрос GET /demo HTTP/1.1Upgrade: WebSocketConnection: UpgradeHost: site.comOrigin: http://site.com

Page 15: Web sockets

Ответ сервераHTTP/1.1 101 Web Socket Protocol HandshakeUpgrade: WebSocketConnection: UpgradeWebSocket-Origin: http://site.comWebSocket-Location: ws://site.com/demo

Page 16: Web sockets

Text Data Frame

0x00, <строка в кодировке UTF-8>, 0xFF

Page 17: Web sockets

Binary Data Frame0x80, <длина - 1 или несколько байт>, <data>

GIF 1px, 43 байта : 0x80, 0x2B, <data>160 байт: 0x80, 0x81, 0x20, <data>

Page 18: Web sockets

Кодирование длины двоичных данных 0х81 0х20

0 + 128 + 32 = 160

1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0

0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0

Page 20: Web sockets
Page 21: Web sockets

Joe Armstrong:«Comet is dead long live websockets»

Page 22: Web sockets

Евгений Лисицкий

www.websockets.ru

[email protected]

twitter.com/lisitsky