SlideShare una empresa de Scribd logo
1 de 30
Промедление смерти подобно
Карлович Александр,
      <EPAM> Systems,
             Frontend разработчик

                                Контакты:
                                Email: alexkarlovich@gmail.com
                                Twitter: http://twitter.com/AlexKarlovich
                                Site: http://alexkarlovich.com
Agenda
1. Применение
2. Обзор технологий и инструментов
3. Подробнее о веб-сокетах
4. Практикум
Биржевая и финансовая
    информация
Спортивные события,
букмекерские котировки
Онлайн-игры
Соцсети, чаты
Транcпорт
Бесконечный GIF
Polling
Polling в жизни
COMET
-   Бесконечный фрейм
-   Long Polling
-   Http streaming
-   Flash-объекты
-   Java-апплеты
Рубрика “No comments”
– <meta http-equiv="refresh"
  content="60">

– setTimeout(function () {
     location.reload();
}, 6000);
Realtime в HTML5
- WebRTC.
- Server-Sent Events.
- WebSocket протокол & API.
WebSocket API
Пример
var socket = new WebSocket('ws://frontendconf.nodejitsu.com');
socket.onopen = function () {
    console.log('Соединение открыто.');
    socket.send(JSON.stringify({ token: 'bVfr4' }));
};
socket.onmessage = function (message) {
    var data= JSON.parse(message.data);
    if (data.type === 'user') {
        alert(data.user.title);
    }
    console.log('Пришло сообщение от сервера: ' + message.data);
};
socket.onclose = function () {
    console.log('Соединение закрылось.')
};
socket.onerror = function () {
    console.log('Что-то пошло не так.')
};
//socket.binaryType = 'arraybuffer';
Хидеры запроса
- GET /chat HTTP/1.1
- Host: server.example.com
- Upgrade: websocket
- Connection: Upgrade
- Sec-WebSocket-Key:
  dGhlIHNhbXBsZSBub25jZQ==
- Origin: http://example.com
- Sec-WebSocket-Protocol: chat, superchat
- Sec-WebSocket-Version: 13
Хидеры ответа
- HTTP/1.1 101 Switching Protocols
- Upgrade: websocket
- Connection: Upgrade
- Sec-WebSocket-Accept:
  s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec
- WebSocket-Protocol: chat
Поддержка браузеров
Серверы
Трафик: Web Sockets vs Polling
Преимущества WebSockets
-   Веб-стандарт
-   Двусторонний обмен данными
-   Нативная поддержка браузерами и серверами
-   Низкая задержка
-   Постоянное соединение
-   Кросдоменность
-   Неограниченное количество соединений
-   Кодировка UTF8
-   Работа с бинарными данными
Библиотеки
-   SignalR
-   Lightstreamer
-   Socket.io
-   Sock.js
-   ...
Практикум: рисуем онлайн
Материалы для воркшопа
- Готовое приложение:
http://alexkarlovich.com/frontendconf/worksho
p/client-side/views/
- Материалы для воркшопа:
     http://alexkarlovich.com/frontendconf/wo
rkshop.zip
Ссылки
- WebSocket-протокол:
    http://tools.ietf.org/html/rfc6455
- WebSocket-API:
    http://www.w3.org/TR/2011/WD-
websockets-20110419/
Спасибо за внимание!
           Email: alexkarlovich@gmail.com
           Twitter: http://twitter.com/AlexKarlovich
           Site: http://alexkarlovich.com

Más contenido relacionado

La actualidad más candente

Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Socketsguest092df8
 
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...KazHackStan
 
Татьяна Новикова (Казахстан), ЦАРКА. Как мы мониторим Казнет с помощью WebTotem
Татьяна Новикова (Казахстан), ЦАРКА. Как мы мониторим Казнет с помощью WebTotemТатьяна Новикова (Казахстан), ЦАРКА. Как мы мониторим Казнет с помощью WebTotem
Татьяна Новикова (Казахстан), ЦАРКА. Как мы мониторим Казнет с помощью WebTotemKazHackStan
 
Web socket и приложения реального времени
Web socket и приложения реального времениWeb socket и приложения реального времени
Web socket и приложения реального времениOleksandr Voytsekhovskyy
 
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...KazHackStan
 
Антон Карпов - Сетевая безопасность
 Антон Карпов - Сетевая безопасность Антон Карпов - Сетевая безопасность
Антон Карпов - Сетевая безопасностьYandex
 
Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)
Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)
Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)Ontico
 
17 - Web-технологии. Real Time сообщения
17 - Web-технологии. Real Time сообщения17 - Web-технологии. Real Time сообщения
17 - Web-технологии. Real Time сообщенияRoman Brovko
 
Безопасность интернет-приложений осень 2013 лекция 2
Безопасность интернет-приложений осень 2013 лекция 2Безопасность интернет-приложений осень 2013 лекция 2
Безопасность интернет-приложений осень 2013 лекция 2Technopark
 
Снижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINXСнижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINXAndrii Podanenko
 
VDS: обнаружение, выявление причин и устранение проблемных ситуаций. Диагнос...
VDS: обнаружение, выявление причин и устранение проблемных ситуаций.  Диагнос...VDS: обнаружение, выявление причин и устранение проблемных ситуаций.  Диагнос...
VDS: обнаружение, выявление причин и устранение проблемных ситуаций. Диагнос...Oleg Lipin
 
Что надо знать о HTTP/2 Frontend разработчику
Что надо знать о HTTP/2 Frontend разработчикуЧто надо знать о HTTP/2 Frontend разработчику
Что надо знать о HTTP/2 Frontend разработчикуАлександр Майоров
 
08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backend08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backendRoman Brovko
 
Браузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемБраузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемPavel Klimiankou
 
Михаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, AjaxМихаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, AjaxYandex
 
мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1rit2011
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервераRoman Brovko
 

La actualidad más candente (20)

Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Sockets
 
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
 
Татьяна Новикова (Казахстан), ЦАРКА. Как мы мониторим Казнет с помощью WebTotem
Татьяна Новикова (Казахстан), ЦАРКА. Как мы мониторим Казнет с помощью WebTotemТатьяна Новикова (Казахстан), ЦАРКА. Как мы мониторим Казнет с помощью WebTotem
Татьяна Новикова (Казахстан), ЦАРКА. Как мы мониторим Казнет с помощью WebTotem
 
KazHackStan 2017 | Tracking
KazHackStan 2017 | TrackingKazHackStan 2017 | Tracking
KazHackStan 2017 | Tracking
 
Web socket и приложения реального времени
Web socket и приложения реального времениWeb socket и приложения реального времени
Web socket и приложения реального времени
 
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...
 
Антон Карпов - Сетевая безопасность
 Антон Карпов - Сетевая безопасность Антон Карпов - Сетевая безопасность
Антон Карпов - Сетевая безопасность
 
Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)
Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)
Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)
 
17 - Web-технологии. Real Time сообщения
17 - Web-технологии. Real Time сообщения17 - Web-технологии. Real Time сообщения
17 - Web-технологии. Real Time сообщения
 
Безопасность интернет-приложений осень 2013 лекция 2
Безопасность интернет-приложений осень 2013 лекция 2Безопасность интернет-приложений осень 2013 лекция 2
Безопасность интернет-приложений осень 2013 лекция 2
 
Снижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINXСнижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINX
 
VDS: обнаружение, выявление причин и устранение проблемных ситуаций. Диагнос...
VDS: обнаружение, выявление причин и устранение проблемных ситуаций.  Диагнос...VDS: обнаружение, выявление причин и устранение проблемных ситуаций.  Диагнос...
VDS: обнаружение, выявление причин и устранение проблемных ситуаций. Диагнос...
 
WWW
WWWWWW
WWW
 
Что надо знать о HTTP/2 Frontend разработчику
Что надо знать о HTTP/2 Frontend разработчикуЧто надо знать о HTTP/2 Frontend разработчику
Что надо знать о HTTP/2 Frontend разработчику
 
08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backend08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backend
 
Браузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемБраузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачем
 
Михаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, AjaxМихаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, Ajax
 
мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера
 
Сокеты
СокетыСокеты
Сокеты
 

Destacado

Descriptions 2
Descriptions 2Descriptions 2
Descriptions 2Mireiavg
 
Fast queue – как мы сделали свою очередь на perl и redis
Fast queue – как мы сделали свою очередь на perl и redisFast queue – как мы сделали свою очередь на perl и redis
Fast queue – как мы сделали свою очередь на perl и redisMoscow.pm
 
Очереди и блокировки
Очереди и блокировкиОчереди и блокировки
Очереди и блокировкиAlexandre Kalendarev
 
Аналитика над петабайтами в реальном времени
Аналитика над петабайтами в реальном времениАналитика над петабайтами в реальном времени
Аналитика над петабайтами в реальном времениCodeFest
 
Паттерны и примеры структур данных в NoSQL на примере Tarantool
Паттерны и примеры структур данных в NoSQL на примере TarantoolПаттерны и примеры структур данных в NoSQL на примере Tarantool
Паттерны и примеры структур данных в NoSQL на примере TarantoolAlexandre Kalendarev
 
Scaling Crashlytics: Building Analytics on Redis 2.6
Scaling Crashlytics: Building Analytics on Redis 2.6Scaling Crashlytics: Building Analytics on Redis 2.6
Scaling Crashlytics: Building Analytics on Redis 2.6Crashlytics
 

Destacado (6)

Descriptions 2
Descriptions 2Descriptions 2
Descriptions 2
 
Fast queue – как мы сделали свою очередь на perl и redis
Fast queue – как мы сделали свою очередь на perl и redisFast queue – как мы сделали свою очередь на perl и redis
Fast queue – как мы сделали свою очередь на perl и redis
 
Очереди и блокировки
Очереди и блокировкиОчереди и блокировки
Очереди и блокировки
 
Аналитика над петабайтами в реальном времени
Аналитика над петабайтами в реальном времениАналитика над петабайтами в реальном времени
Аналитика над петабайтами в реальном времени
 
Паттерны и примеры структур данных в NoSQL на примере Tarantool
Паттерны и примеры структур данных в NoSQL на примере TarantoolПаттерны и примеры структур данных в NoSQL на примере Tarantool
Паттерны и примеры структур данных в NoSQL на примере Tarantool
 
Scaling Crashlytics: Building Analytics on Redis 2.6
Scaling Crashlytics: Building Analytics on Redis 2.6Scaling Crashlytics: Building Analytics on Redis 2.6
Scaling Crashlytics: Building Analytics on Redis 2.6
 

Similar a Periculum est in mora

Михаил Давыдов: Транспорт, ajax
Михаил Давыдов: Транспорт, ajaxМихаил Давыдов: Транспорт, ajax
Михаил Давыдов: Транспорт, ajaxYandex
 
Семь тысяч Rps, один go
Семь тысяч Rps, один goСемь тысяч Rps, один go
Семь тысяч Rps, один goBadoo Development
 
Mihail davidov js-ajax
Mihail davidov js-ajaxMihail davidov js-ajax
Mihail davidov js-ajaxYandex
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеbeched
 
Node.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаNode.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаAlexei Smolyanov
 
Ajax and Transports (in russian)
Ajax and Transports (in russian)Ajax and Transports (in russian)
Ajax and Transports (in russian)Mikhail Davydov
 
Практическое применение HTML5 в Я.Почте
Практическое применение HTML5 в Я.ПочтеПрактическое применение HTML5 в Я.Почте
Практическое применение HTML5 в Я.ПочтеAlexey Androsov
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформуVadim Kruchkov
 
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Ontico
 
Темное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTCТемное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTCVoximplant
 
Александр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеАлександр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеKaspersky
 
Nginx Igor Sysoev
Nginx   Igor SysoevNginx   Igor Sysoev
Nginx Igor SysoevMedia Gorod
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Andrew Mayorov
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)Sergey Skvortsov
 
Изоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, HuntflowИзоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, Huntflowit-people
 
Алексей Лапаев - Протоколы межкомпонентного взаимодействия
Алексей Лапаев - Протоколы межкомпонентного взаимодействияАлексей Лапаев - Протоколы межкомпонентного взаимодействия
Алексей Лапаев - Протоколы межкомпонентного взаимодействияYandex
 
Web осень 2012 лекция 11
Web осень 2012 лекция 11Web осень 2012 лекция 11
Web осень 2012 лекция 11Technopark
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2Dima Dzuba
 

Similar a Periculum est in mora (20)

Михаил Давыдов: Транспорт, ajax
Михаил Давыдов: Транспорт, ajaxМихаил Давыдов: Транспорт, ajax
Михаил Давыдов: Транспорт, ajax
 
Семь тысяч Rps, один go
Семь тысяч Rps, один goСемь тысяч Rps, один go
Семь тысяч Rps, один go
 
Mihail davidov js-ajax
Mihail davidov js-ajaxMihail davidov js-ajax
Mihail davidov js-ajax
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновение
 
Node.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаNode.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчика
 
Ajax and Transports (in russian)
Ajax and Transports (in russian)Ajax and Transports (in russian)
Ajax and Transports (in russian)
 
Практическое применение HTML5 в Я.Почте
Практическое применение HTML5 в Я.ПочтеПрактическое применение HTML5 в Я.Почте
Практическое применение HTML5 в Я.Почте
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформу
 
Веб-сервер
Веб-серверВеб-сервер
Веб-сервер
 
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
 
Темное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTCТемное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTC
 
Александр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеАлександр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетике
 
Nginx Igor Sysoev
Nginx   Igor SysoevNginx   Igor Sysoev
Nginx Igor Sysoev
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
 
Изоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, HuntflowИзоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, Huntflow
 
Алексей Лапаев - Протоколы межкомпонентного взаимодействия
Алексей Лапаев - Протоколы межкомпонентного взаимодействияАлексей Лапаев - Протоколы межкомпонентного взаимодействия
Алексей Лапаев - Протоколы межкомпонентного взаимодействия
 
Web осень 2012 лекция 11
Web осень 2012 лекция 11Web осень 2012 лекция 11
Web осень 2012 лекция 11
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2
 

Periculum est in mora

Notas del editor

  1. By Maxim Dorofeev ‏@cartmendum
  2. http://dev.w3.org/html5/websockets/
  3. http://tools.ietf.org/html/rfc6455
  4. http://tools.ietf.org/html/rfc6455
  5. http://caniuse.com/#search=websocket
  6. http://www.websocket.org/quantum.html
  7. http://webtide.intalio.com/2011/09/cometd-2-4-0-websocket-benchmarks/
  8. http://webtide.intalio.com/2011/09/cometd-2-4-0-websocket-benchmarks/