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

Web sockets

Jun 23, 2015

Download

Technology

Eugene Lisitsky

Что такое Веб Сокеты? Почему они нужны вам
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: 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