SlideShare una empresa de Scribd logo
1 de 28
HTML5: WebSockets and
                        WebWorkers
КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В
УКРАИНЕ
Обо мне
• Windows Azure MVP
• Ведущий разработчик в компании Digital
  Cloud Technologies
• Сертифицированный специалист
  Microsoft


 Контактные данные

• @feschenkoalex
• http://feschenkoalex.blogspot.com
• feschenko.alex@gmail.com,
  alex.feschenko@dctua.com
Содержание
Концепция
«Real Time
  Web»
             1          WebSockets
                                       2         WebWorkers
                                                                3
                      Рабочие группы         Программирование
  COMET      1.1          HTML5        2.1                      3.1
                                               WebWorker-ов


                   Программирование                Сценарии
                      web-сокетов      2.2        применения    3.2

                     ASP.NET SignalR
                         Library       2.3
Концепция «живого» Веба
COMET
COMET
                       Модель разработки приложений, при которой длительно
                    удерживаемое HTTP-соединение позволяет серверу отправлять
                                         данные браузеру



Разновидности
                                      Браузер через регулярные промежутки
      Частый опрос (Pooling)          времени отправляет HTTP-запрос на сервер

                                      Запрос удерживается сервером на
Удержание соединения (Long-Pooling)   протяжении определенного промежутка
                                      времени

                                      Запрос может удерживаться сервером
       Стриминг (Streaming)
                                      бесконечно долго
Недостатки COMET-решений


  Решение       Повышается
   сложно         время       COMET – это дорогое решение !
 реализовать     ожидания



Нерациональн

                               SAY NO TO COMET !
      о         Возрастает
 используется   нагрузка на
    полоса         CPU
 пропускания

                               It`s just a “hack” :(
HTML5 WebSockets !
                   «Венец эволюции» в Web-коммуникациях.
                   Двунаправленный сокет, функционирующий в сети
                   Интернет

        Режим Full-Duplex                          Сервер
       Обычный TCP-сокет

Функционирует не только в браузере            Открытое сокетное
                                                 соединение
   Высокая производительность

          Понятное API
                                                   Клиент
  Возможности масштабирования

Рациональное использование канала
Организации стандартизации




   Особенности протокола   Web Sockets API
Рабочие группы HTML5

   Geo-      Web
                     Web
  Locatio   Perfor            HyBi
                     Apps
     n      mance




                     Ecma
   SVG      HTML              CSS
                     Script
HTML Microdata
                                HTML Canvas 2D Context




                    HTML
                               HTML5




 working draft
First published
                                CSS Hyperlink Presentation
                               CSS Grid Positioning
                                CSS Namespaces
                                Selector Level 3




                    CSS
                               CSS Style Attributes
                               CSS Speech
                               CSS Animations




   Working Draft
                               CSS Color Level 3

                               CORS
                                Clipboard APIs and Events
                                DOM Level 3 Events
                                 Element Traversal
                               File API

   Last Call
                                Progress Events
                               Selectors API
                                Server-Sent Events
                    Web Apps




                                From Origin Header
                                                             HTML5 спецификации




                                UMP
                               Web IDL
                               WARP
                                Widget Packaging
   Candidate




                               SVG 2.0
Recommendation




                               Compositing
                               SVG Parameters
                               Color Management
                    SVG




                               SVG Integration
                               Filter Effects
                                Masking and Clipping
   Recommendation
История развития
                                             Декабрь 2011

                   Июнь 2010 – Ноябрь 2011



              Декабрь 2010
                                                            RFC 6455
                                             v.00-v.06
    Декабрь 2009                      v.76
                                                     Candidate Recommendation
                       Third Draft, v.75
Январь 2009
                First Working Draft
DEMONSTRATION
Установка соединения
       Клиент обращается к
       ws://domain.com/chat




              Клиент                                     Сервер
 Обязательные:                              Обязательные:
 GET /chat HTTP/1.1                         HTTP/1.1 101 “Switching Protocols”
 Host: server.domain.com                    Upgrade: websocket
 Upgrade: websocket                         Connection: upgrade
 Connection: upgrade                        Sec-WebSocket-Accept: 20-byte MD5
 Sec-WebSocket-Key: 16-byte nonce, base64   hash in base64
 Sec-WebSocket-Version: 13                  Опциональные:
 Опциональные:                              Sec-WebSocket-Protocol: protocol
 Sec-WebSocket-Origin: http://domain.com    Sec-WebSocket-Extension: extension
 Sec-WebSocket-Protocol: protocol
 Sec-WebSocket-Extensions: extension
 Cookie: cookie content
Формат фреймов
• Каждый фрейм содержит несколько заголовочных байтов
• Данные могут пересылаться как в текстовом так и в
  бинарном виде
• Каждый фрейм содержит «маску» для обхода ограничений
  прокси-серверов


            op-        Extended
    mask        length            Extension data   Application data
           code          length
W3C WebSocket API
• Очень простой программный интерфейс


• Основные методы и обработчики событий:
   • WebSocket(URL, [protocols]) – Создание соединения
   • onOpen() – вызывается при успешной установке соединения
   • Send(data) – отправка сообщения
   • onMessage() – вызывается при получении сообщения
   • onClose() – вызывается при закрытии соединения
   • onError() – вызывается при возникновении ошибок
Поддержка браузерами

 •   Chrome 4.0+
 •   Safari 5.0 & iOS 4+
 •   Firefox 4+
 •   Opera 10.7+
 •   Internet Explorer 10+
ASP.NET SIGNALR
ASP.NET SignalR Library
• Позволяет абстрагироваться от концепции
  сокетов
• Включает в себя серверную и клиентскую
  библиотеки
• Позволяет строить WebSocket-подобные
  приложения для клиентов, не
  поддерживающих HTML5
• Два подхода к разработке
   • PersistentConnection
   • Hubs
DEMONSTRATION
WEBWORKERS
Проблема

Переходы
           Нажатие   Скролл
    по                         Скрипты
           кнопок    страниц
 ссылкам




     Выполняются в одном потоке
Многопоточность в Javascript
Web Worker - это Web-сценарий, работающий в параллельном потоке
выполнения

Простая модель взаимодействия с Web Worker-ом


  onmessage =            onerror =                Подключение
  function(event) {      function(event) {        скриптов:
   …                     …                        importScripts([url
  }                      }                        s])
                                                  Остановка потока:
                                                  close()
DEMONSTRATION
Функциональное оснащение


 DOM        Window   Document   Parent   Navigator




                      Timers     App      Import
 Location    Ajax
                                Cache     Scripts
Варианты использования

   Предварительная загрузка и кеширование

        Real-time подсветка синтаксиса

        Анализ видео и аудио файлов

           Проверка правописания

        Фоновый опрос веб-сервисов

      Выполнение «тяжелых» операций
Полезные ссылки
•   http://www.html5rocks.com
•   http://dev.w3.org/html5/websockets/
•   http://tools.ietf.org/html/rfc6455
•   http://websocket.org/quantum.html
•   http://soa.sys-con.com/node/1551694
•   http://signalr.net
•   http://www.thevista.ru/page14623-html5_web_workers
•   http://en.wikipedia.org/wiki/WebSocket
СПАСИБО ЗА
ВНИМАНИЕ !

Más contenido relacionado

Destacado

Кирилл Мокевнин — Ментальное программирование
Кирилл Мокевнин — Ментальное программированиеКирилл Мокевнин — Ментальное программирование
Кирилл Мокевнин — Ментальное программирование
Daria Oreshkina
 
язык программирования с#
язык программирования с#язык программирования с#
язык программирования с#
Nitrosalat
 
Introduction To Statistics
Introduction To StatisticsIntroduction To Statistics
Introduction To Statistics
albertlaporte
 
Артем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSSАртем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSS
DataArt
 
Ratio Analysis
Ratio AnalysisRatio Analysis
Ratio Analysis
Dharan178
 

Destacado (12)

Кирилл Мокевнин — Ментальное программирование
Кирилл Мокевнин — Ментальное программированиеКирилл Мокевнин — Ментальное программирование
Кирилл Мокевнин — Ментальное программирование
 
язык программирования с#
язык программирования с#язык программирования с#
язык программирования с#
 
О.В.Сухорослов "Параллельное программирование"
О.В.Сухорослов "Параллельное программирование"О.В.Сухорослов "Параллельное программирование"
О.В.Сухорослов "Параллельное программирование"
 
Assembler Language Tutorial for Mainframe Programmers
Assembler Language Tutorial for Mainframe ProgrammersAssembler Language Tutorial for Mainframe Programmers
Assembler Language Tutorial for Mainframe Programmers
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программирование
 
Лекция #3. Введение в языки разметки web-страниц
Лекция #3. Введение в языки разметки web-страницЛекция #3. Введение в языки разметки web-страниц
Лекция #3. Введение в языки разметки web-страниц
 
HTML, CSS and Java Scripts Basics
HTML, CSS and Java Scripts BasicsHTML, CSS and Java Scripts Basics
HTML, CSS and Java Scripts Basics
 
Credit rating ppt
Credit rating pptCredit rating ppt
Credit rating ppt
 
Introduction To Statistics
Introduction To StatisticsIntroduction To Statistics
Introduction To Statistics
 
Артем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSSАртем Маркушев - HTML & CSS
Артем Маркушев - HTML & CSS
 
Ratio Analysis
Ratio AnalysisRatio Analysis
Ratio Analysis
 

Similar a HTML5 WebSockets and WebWorkers

Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows Azure
Alexander Feschenko
 
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
ITGinGer
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Anatoly Kireev
 
технологические сценарии Windows azure
технологические сценарии Windows azureтехнологические сценарии Windows azure
технологические сценарии Windows azure
Expolink
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendencies
DarkestMaster
 
Web matrix
Web matrixWeb matrix
Web matrix
.toster
 

Similar a HTML5 WebSockets and WebWorkers (20)

Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
 
Windows azure общий обзор
Windows azure общий обзорWindows azure общий обзор
Windows azure общий обзор
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
 
Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows Azure
 
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
 
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
ASP.NET MVC 3
ASP.NET MVC 3ASP.NET MVC 3
ASP.NET MVC 3
 
технологические сценарии Windows azure
технологические сценарии Windows azureтехнологические сценарии Windows azure
технологические сценарии Windows azure
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложений
 
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
 
Что нового в ASP.NET 5
Что нового в ASP.NET 5Что нового в ASP.NET 5
Что нового в ASP.NET 5
 
Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendencies
 
Hivext 04.2009
Hivext 04.2009Hivext 04.2009
Hivext 04.2009
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Web matrix
Web matrixWeb matrix
Web matrix
 

Más de Alexander Feschenko

Windows Azure. Scaling, Caching and Performance
Windows Azure. Scaling, Caching and PerformanceWindows Azure. Scaling, Caching and Performance
Windows Azure. Scaling, Caching and Performance
Alexander Feschenko
 
Windows Azure Security and Diagnostics
Windows Azure Security and DiagnosticsWindows Azure Security and Diagnostics
Windows Azure Security and Diagnostics
Alexander Feschenko
 
Windows Azure Overview and Application Lifecycle
Windows Azure Overview and Application LifecycleWindows Azure Overview and Application Lifecycle
Windows Azure Overview and Application Lifecycle
Alexander Feschenko
 
Построение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureПостроение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows Azure
Alexander Feschenko
 
Построение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureПостроение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows Azure
Alexander Feschenko
 
Продвинутая web-отладка с Fiddler
Продвинутая web-отладка с FiddlerПродвинутая web-отладка с Fiddler
Продвинутая web-отладка с Fiddler
Alexander Feschenko
 

Más de Alexander Feschenko (16)

Azure Container Service
Azure Container ServiceAzure Container Service
Azure Container Service
 
Microsoft Azure Automation
Microsoft Azure AutomationMicrosoft Azure Automation
Microsoft Azure Automation
 
Microsoft Azure. Troubleshooting and monitoring.
Microsoft Azure. Troubleshooting and monitoring.Microsoft Azure. Troubleshooting and monitoring.
Microsoft Azure. Troubleshooting and monitoring.
 
Azure Powershell. Azure Automation
Azure Powershell. Azure AutomationAzure Powershell. Azure Automation
Azure Powershell. Azure Automation
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.
 
Automating Azure VMs with PowerShell
Automating Azure VMs with PowerShellAutomating Azure VMs with PowerShell
Automating Azure VMs with PowerShell
 
Introduction to Windows Azure IaaS
Introduction to Windows Azure IaaSIntroduction to Windows Azure IaaS
Introduction to Windows Azure IaaS
 
Windows Azure. Scaling, Caching and Performance
Windows Azure. Scaling, Caching and PerformanceWindows Azure. Scaling, Caching and Performance
Windows Azure. Scaling, Caching and Performance
 
Windows Azure Security and Diagnostics
Windows Azure Security and DiagnosticsWindows Azure Security and Diagnostics
Windows Azure Security and Diagnostics
 
Windows Azure Storage
Windows Azure StorageWindows Azure Storage
Windows Azure Storage
 
Windows Azure Overview and Application Lifecycle
Windows Azure Overview and Application LifecycleWindows Azure Overview and Application Lifecycle
Windows Azure Overview and Application Lifecycle
 
Windows Azure Internals
Windows Azure InternalsWindows Azure Internals
Windows Azure Internals
 
Developer Days 2011, Kharkov
Developer Days 2011, KharkovDeveloper Days 2011, Kharkov
Developer Days 2011, Kharkov
 
Построение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureПостроение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows Azure
 
Построение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureПостроение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows Azure
 
Продвинутая web-отладка с Fiddler
Продвинутая web-отладка с FiddlerПродвинутая web-отладка с Fiddler
Продвинутая web-отладка с Fiddler
 

Último

Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 

Último (9)

MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 

HTML5 WebSockets and WebWorkers

  • 1. HTML5: WebSockets and WebWorkers КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В УКРАИНЕ
  • 2. Обо мне • Windows Azure MVP • Ведущий разработчик в компании Digital Cloud Technologies • Сертифицированный специалист Microsoft Контактные данные • @feschenkoalex • http://feschenkoalex.blogspot.com • feschenko.alex@gmail.com, alex.feschenko@dctua.com
  • 3. Содержание Концепция «Real Time Web» 1 WebSockets 2 WebWorkers 3 Рабочие группы Программирование COMET 1.1 HTML5 2.1 3.1 WebWorker-ов Программирование Сценарии web-сокетов 2.2 применения 3.2 ASP.NET SignalR Library 2.3
  • 6. COMET Модель разработки приложений, при которой длительно удерживаемое HTTP-соединение позволяет серверу отправлять данные браузеру Разновидности Браузер через регулярные промежутки Частый опрос (Pooling) времени отправляет HTTP-запрос на сервер Запрос удерживается сервером на Удержание соединения (Long-Pooling) протяжении определенного промежутка времени Запрос может удерживаться сервером Стриминг (Streaming) бесконечно долго
  • 7. Недостатки COMET-решений Решение Повышается сложно время COMET – это дорогое решение ! реализовать ожидания Нерациональн SAY NO TO COMET ! о Возрастает используется нагрузка на полоса CPU пропускания It`s just a “hack” :(
  • 8. HTML5 WebSockets ! «Венец эволюции» в Web-коммуникациях. Двунаправленный сокет, функционирующий в сети Интернет Режим Full-Duplex Сервер Обычный TCP-сокет Функционирует не только в браузере Открытое сокетное соединение Высокая производительность Понятное API Клиент Возможности масштабирования Рациональное использование канала
  • 9. Организации стандартизации Особенности протокола Web Sockets API
  • 10. Рабочие группы HTML5 Geo- Web Web Locatio Perfor HyBi Apps n mance Ecma SVG HTML CSS Script
  • 11. HTML Microdata HTML Canvas 2D Context HTML HTML5 working draft First published CSS Hyperlink Presentation CSS Grid Positioning CSS Namespaces Selector Level 3 CSS CSS Style Attributes CSS Speech CSS Animations Working Draft CSS Color Level 3 CORS Clipboard APIs and Events DOM Level 3 Events Element Traversal File API Last Call Progress Events Selectors API Server-Sent Events Web Apps From Origin Header HTML5 спецификации UMP Web IDL WARP Widget Packaging Candidate SVG 2.0 Recommendation Compositing SVG Parameters Color Management SVG SVG Integration Filter Effects Masking and Clipping Recommendation
  • 12. История развития Декабрь 2011 Июнь 2010 – Ноябрь 2011 Декабрь 2010 RFC 6455 v.00-v.06 Декабрь 2009 v.76 Candidate Recommendation Third Draft, v.75 Январь 2009 First Working Draft
  • 14. Установка соединения Клиент обращается к ws://domain.com/chat Клиент Сервер Обязательные: Обязательные: GET /chat HTTP/1.1 HTTP/1.1 101 “Switching Protocols” Host: server.domain.com Upgrade: websocket Upgrade: websocket Connection: upgrade Connection: upgrade Sec-WebSocket-Accept: 20-byte MD5 Sec-WebSocket-Key: 16-byte nonce, base64 hash in base64 Sec-WebSocket-Version: 13 Опциональные: Опциональные: Sec-WebSocket-Protocol: protocol Sec-WebSocket-Origin: http://domain.com Sec-WebSocket-Extension: extension Sec-WebSocket-Protocol: protocol Sec-WebSocket-Extensions: extension Cookie: cookie content
  • 15. Формат фреймов • Каждый фрейм содержит несколько заголовочных байтов • Данные могут пересылаться как в текстовом так и в бинарном виде • Каждый фрейм содержит «маску» для обхода ограничений прокси-серверов op- Extended mask length Extension data Application data code length
  • 16. W3C WebSocket API • Очень простой программный интерфейс • Основные методы и обработчики событий: • WebSocket(URL, [protocols]) – Создание соединения • onOpen() – вызывается при успешной установке соединения • Send(data) – отправка сообщения • onMessage() – вызывается при получении сообщения • onClose() – вызывается при закрытии соединения • onError() – вызывается при возникновении ошибок
  • 17. Поддержка браузерами • Chrome 4.0+ • Safari 5.0 & iOS 4+ • Firefox 4+ • Opera 10.7+ • Internet Explorer 10+
  • 19. ASP.NET SignalR Library • Позволяет абстрагироваться от концепции сокетов • Включает в себя серверную и клиентскую библиотеки • Позволяет строить WebSocket-подобные приложения для клиентов, не поддерживающих HTML5 • Два подхода к разработке • PersistentConnection • Hubs
  • 22. Проблема Переходы Нажатие Скролл по Скрипты кнопок страниц ссылкам Выполняются в одном потоке
  • 23. Многопоточность в Javascript Web Worker - это Web-сценарий, работающий в параллельном потоке выполнения Простая модель взаимодействия с Web Worker-ом onmessage = onerror = Подключение function(event) { function(event) { скриптов: … … importScripts([url } } s]) Остановка потока: close()
  • 25. Функциональное оснащение DOM Window Document Parent Navigator Timers App Import Location Ajax Cache Scripts
  • 26. Варианты использования Предварительная загрузка и кеширование Real-time подсветка синтаксиса Анализ видео и аудио файлов Проверка правописания Фоновый опрос веб-сервисов Выполнение «тяжелых» операций
  • 27. Полезные ссылки • http://www.html5rocks.com • http://dev.w3.org/html5/websockets/ • http://tools.ietf.org/html/rfc6455 • http://websocket.org/quantum.html • http://soa.sys-con.com/node/1551694 • http://signalr.net • http://www.thevista.ru/page14623-html5_web_workers • http://en.wikipedia.org/wiki/WebSocket