WebSockets Докладчик: Лисицкий Евгений «Спорт Сегодня»
Структура доклада: <ul><li>Работа интерактивного веба  </li></ul><ul><li>Преимущества  WebSockets . </li></ul><ul><li>Срав...
Схема работы: ТРАНСПОРТ СЕРВЕР КЛИЕНТ
Популярные реализации: <ul><li>Erlang: MochWeb, Misultin  </li></ul><ul><li>JavaScript: NodeJS </li></ul><ul><li>Perl: Any...
Схема работы: HTTP ТРАНСПОРТ СЕРВЕР разные языки КЛИЕНТ JavaScript
Интерактивность: <ul><li>Минимальная латентность </li></ul><ul><li>Асинхронность </li></ul>
Ограничения НТТР при интерактивной работе: <ul><li>Синхронность </li></ul><ul><li>Жесткое распределение «клиент»-ведущий и...
Диаграмма работы НТТР КЛИЕНТ СЕРВЕР ВРЕМЯ ведущий ведомый
КПД  НТТР КПД НТТР  Comet ~  0,5… 10  % кпд паровоза= 7%
Преимущества  WebSockets <ul><li>Входит в HTML5, будет стандартом W3C </li></ul><ul><li>Двунаправленная передача данных (f...
Передача данных: АСИНХРОННОСТЬ FULL - DUPLEX
Преимущества  WebSockets 4. Низкие требования к сетевым  ресурсам, максимальный КПД передачи данных, минимум «накладных ра...
J ava S cript-объект: <ul><li>ws =  new  WebSocket( &quot;ws://site.com/demo&quot; ); </li></ul><ul><li>ws.onopen =  funct...
GET-запрос  <ul><li>GET /demo HTTP/1.1 </li></ul><ul><li>Upgrade: WebSocket </li></ul><ul><li>Connection: Upgrade </li></u...
Ответ сервера <ul><li>HTTP/1.1 101 Web Socket Protocol Handshake </li></ul><ul><li>Upgrade: WebSocket </li></ul><ul><li>Co...
Text Data Frame <ul><li>0x00, <строка в кодировке UTF-8>, 0xFF </li></ul>
Binary Data Frame <ul><li>0x80, <длина - 1 или несколько байт>, < data > </li></ul><ul><li>GIF 1px,  43 байта :  0x80, 0x2...
Кодирование длины двоичных данных <ul><li>  0х81    0х20 </li></ul><ul><li>0 + 128 + 32 = 160 </li></ul>1  0 0 0 0 0 0 1 0...
Пример: <ul><li>http://chat.websockets.ru </li></ul><ul><li>или </li></ul><ul><li>http :// sn.im / ws-chat   </li></ul>
 
Joe Armstrong: <ul><li>« Comet is dead long live websockets » </li></ul>
Евгений Лисицкий <ul><li>www.websockets.ru </li></ul><ul><li>[email_address] </li></ul><ul><li>twitter.com/lisitsky </li><...
Upcoming SlideShare
Loading in …5
×

Eugene Lisitsky Web Sockets

3,238 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,238
On SlideShare
0
From Embeds
0
Number of Embeds
2,064
Actions
Shares
0
Downloads
25
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Eugene Lisitsky Web Sockets

  1. 1. WebSockets Докладчик: Лисицкий Евгений «Спорт Сегодня»
  2. 2. Структура доклада: <ul><li>Работа интерактивного веба </li></ul><ul><li>Преимущества WebSockets . </li></ul><ul><li>Сравнение со стандартными технологиями. </li></ul><ul><li>Техническая сторона вопроса </li></ul><ul><li>Примеры реализации </li></ul>
  3. 3. Схема работы: ТРАНСПОРТ СЕРВЕР КЛИЕНТ
  4. 4. Популярные реализации: <ul><li>Erlang: MochWeb, Misultin </li></ul><ul><li>JavaScript: NodeJS </li></ul><ul><li>Perl: AnyEvent, Coro, POE </li></ul><ul><li>Python : Twisted, Tornado </li></ul><ul><li>Ruby: EventMachine и другие </li></ul>
  5. 5. Схема работы: HTTP ТРАНСПОРТ СЕРВЕР разные языки КЛИЕНТ JavaScript
  6. 6. Интерактивность: <ul><li>Минимальная латентность </li></ul><ul><li>Асинхронность </li></ul>
  7. 7. Ограничения НТТР при интерактивной работе: <ul><li>Синхронность </li></ul><ul><li>Жесткое распределение «клиент»-ведущий и «сервер»-ведомый </li></ul><ul><li>Низкая эффективность при передаче большого количества маленьких по объему данных </li></ul>
  8. 8. Диаграмма работы НТТР КЛИЕНТ СЕРВЕР ВРЕМЯ ведущий ведомый
  9. 9. КПД НТТР КПД НТТР Comet ~ 0,5… 10 % кпд паровоза= 7%
  10. 10. Преимущества WebSockets <ul><li>Входит в HTML5, будет стандартом W3C </li></ul><ul><li>Двунаправленная передача данных (full-duplex) </li></ul><ul><li>Асинхронность </li></ul>
  11. 11. Передача данных: АСИНХРОННОСТЬ FULL - DUPLEX
  12. 12. Преимущества WebSockets 4. Низкие требования к сетевым ресурсам, максимальный КПД передачи данных, минимум «накладных расходов» 5. Время жизни канала в неактивном состоянии; 6. Возможность работы с разными доменами; 7. Неограниченное количество подключений к одному домену. 8. Очень простое API (интерфейс)
  13. 13. J ava S cript-объект: <ul><li>ws =  new  WebSocket( &quot;ws://site.com/demo&quot; ); </li></ul><ul><li>ws.onopen =  function () { alert( &quot;Connection opened...&quot; ) }; </li></ul><ul><li>  </li></ul><ul><li>ws.onclose =  function () { alert( &quot;Connection closed...&quot; ) }; </li></ul><ul><li>  </li></ul><ul><li>ws.onmessage =  function (evt) { alert(evt.data) }; </li></ul><ul><li>ws.send(“Text…”); </li></ul>
  14. 14. GET-запрос <ul><li>GET /demo HTTP/1.1 </li></ul><ul><li>Upgrade: WebSocket </li></ul><ul><li>Connection: Upgrade </li></ul><ul><li>Host: site.com </li></ul><ul><li>Origin: http://site.com </li></ul>
  15. 15. Ответ сервера <ul><li>HTTP/1.1 101 Web Socket Protocol Handshake </li></ul><ul><li>Upgrade: WebSocket </li></ul><ul><li>Connection: Upgrade </li></ul><ul><li>WebSocket-Origin: http://site.com </li></ul><ul><li>WebSocket-Location: ws://site.com/demo </li></ul>
  16. 16. Text Data Frame <ul><li>0x00, <строка в кодировке UTF-8>, 0xFF </li></ul>
  17. 17. Binary Data Frame <ul><li>0x80, <длина - 1 или несколько байт>, < data > </li></ul><ul><li>GIF 1px, 43 байта : 0x80, 0x2B, < data > </li></ul><ul><li>160 байт: 0x80, 0x81, 0x20, < data > </li></ul>
  18. 18. Кодирование длины двоичных данных <ul><li> 0х81 0х20 </li></ul><ul><li>0 + 128 + 32 = 160 </li></ul>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
  19. 19. Пример: <ul><li>http://chat.websockets.ru </li></ul><ul><li>или </li></ul><ul><li>http :// sn.im / ws-chat </li></ul>
  20. 21. Joe Armstrong: <ul><li>« Comet is dead long live websockets » </li></ul>
  21. 22. Евгений Лисицкий <ul><li>www.websockets.ru </li></ul><ul><li>[email_address] </li></ul><ul><li>twitter.com/lisitsky </li></ul>

×