SlideShare uma empresa Scribd logo
1 de 18
SignalR
SignalR
SignalR - набор библиотек позволяющих
реализовать передачу данных между
клиентом и сервером в real-time
Подходы:
1. Pull (клиент отдает, сервер принимает)
2. Push (клиент слушает, сервер отдает)
Передача данных
WebSockets
Server-sent events
Forever Frames
Long polling
Транспорт Описание Достоинства Недостатки
Polling Постоянный опрос сервера Ajax-
запросами
+ простота реализации
+ поддержка во всех современных
браузерах
- задержка в результатах
- при уменьшении задержки
существенно увеличивается нагрузка
на сервер
Long Polling Ajax-запросы, идущие один за другим, но
каждый запрос держится открытым в
течение нескольких минут
+ сниженная нагрузка на сервер по
сравнению с обычным Polling
+ уменьшенный трафик
+ поддержка во всех современных
браузерах
- больше одновременно открытых
соединений, т.к. каждый запрос живет
дольше
Forever Frame Создается скрытый фрейм который
непрерывно посылает запрос к конечной
точке на сервере
- выделеное соединение между
клиентом и сервером
- only for IE
Server-Sent Events Стандарт HTML5, работающий поверх
HTTP. Позволяет создавать
долгоживущее одностороннее
соединение с сервером, чтобы сервер
мог отправлять данные на клиент
+ нет необходимости постоянно
пересоединяться с сервером
+ нет изменений на стороне сервера,
поэтому работает на всех
современных веб-серверах
- не поддерживается в IE (даже в
IE10)
- работает только в направлении
сервер –> клиент (на сервер можно
отправлять обычные Ajax запросы)
WebSockets Новый протокол (ws:// и wss://),
работающий поверх TCP на одном
уровне с HTTP. Позволяет создавать
двустороннее долгоживущее
соединение с клиентом
+ нет необходимости постоянно
пересоединяться с сервером
+ работает в двустороннем режиме
- поддерживается не во всех веб-
серверах (IIS8)
- поддерживается не во всех
браузерах (в IE7-9, Android)
WebSocket vs Pooling?
Hub
Hub - содержит методы взаимодействия клиентов и сервера.
Hub API
1. Context - содержит информацию о текущем подключении
2.Clients.All. - вызвать всех
3.Clients.Caller. - вызвать только у себя
4.Clients.Others. - вызывать у всех кроме себя
5.Clients.Client(Context.ConnectionId). - вызвать у определенного
клиента
6.Clients.AllExcept(connectionId). - вызвать у всех кроме определенного
клиента
Hub API - Groups
HubProxy
SignalR проецирует Hub в виде Proxy для взаимодействия на клиентах
HubProxy
Типовые сценарии использования
● Чат/Видеоконференции
● Push-нотификации
● Dashboard-мониторинги
● Realtime Progress-bars
● Совместное редактирование документов
● Message Bus в распределенных системах
● …...
Chat: Demo
http://37.187.175.107/SignalRWeb/chat
Действия:
1. В системе происходит событие инициирующее нотификацию
2.В этой части серверного кода создается контекст необходимого хаба
3.Через контекст отправляется сообщение на клиент
4.Клиент никого не опрашивает а просто слушает сервер и дожидается
сообщения
Push-notifications
SignalR Push Notifications - извещают пользователя или группу
пользователей в Real-time об каком либо событии.
Push Notifications: Demo
http://37.187.175.107/SignalRWeb
Модели взаимодействия клиент-сервер
1. Hubs API
2. Persistent Connection API
Вопросы?

Mais conteúdo relacionado

Mais procurados

Михаил Юматов: SaltStack
Михаил Юматов: SaltStackМихаил Юматов: SaltStack
Михаил Юматов: SaltStack
it-people
 
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Fuenteovejuna
 
Big switch: жизнь после Microsoft
Big switch: жизнь после MicrosoftBig switch: жизнь после Microsoft
Big switch: жизнь после Microsoft
Alexander Byndyu
 
Drupal Highload - Klera Vilenskaya
Drupal Highload - Klera VilenskayaDrupal Highload - Klera Vilenskaya
Drupal Highload - Klera Vilenskaya
Alex Ilyin
 

Mais procurados (20)

15 - Web-технологии. Сессии и авторизация
15 - Web-технологии. Сессии и авторизация15 - Web-технологии. Сессии и авторизация
15 - Web-технологии. Сессии и авторизация
 
Балансировка нагрузки веб-серверов
Балансировка нагрузки веб-серверовБалансировка нагрузки веб-серверов
Балансировка нагрузки веб-серверов
 
Михаил Юматов: SaltStack
Михаил Юматов: SaltStackМихаил Юматов: SaltStack
Михаил Юматов: SaltStack
 
Highload 2009
Highload 2009Highload 2009
Highload 2009
 
06 - Web-технологии. Протокол HTTP
06 - Web-технологии. Протокол HTTP06 - Web-технологии. Протокол HTTP
06 - Web-технологии. Протокол HTTP
 
От уютного блога до распределенной инфраструктуры
От уютного блога до распределенной инфраструктурыОт уютного блога до распределенной инфраструктуры
От уютного блога до распределенной инфраструктуры
 
Облачные решения на платформе IO
Облачные решения на платформе IOОблачные решения на платформе IO
Облачные решения на платформе IO
 
02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты
 
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
 
Бекэнд для push-уведомлений своими руками
Бекэнд для push-уведомлений своими рукамиБекэнд для push-уведомлений своими руками
Бекэнд для push-уведомлений своими руками
 
Chrome push notifications. Анатомия и разработка
Chrome push notifications. Анатомия и разработкаChrome push notifications. Анатомия и разработка
Chrome push notifications. Анатомия и разработка
 
Alexei Vladishev - Zabbix 3.0 что дальше
Alexei Vladishev - Zabbix 3.0 что дальшеAlexei Vladishev - Zabbix 3.0 что дальше
Alexei Vladishev - Zabbix 3.0 что дальше
 
Big switch: жизнь после Microsoft
Big switch: жизнь после MicrosoftBig switch: жизнь после Microsoft
Big switch: жизнь после Microsoft
 
веб сервер
веб сервервеб сервер
веб сервер
 
Zabbix в badoo, от lld к super discovery
Zabbix в badoo, от lld к super discoveryZabbix в badoo, от lld к super discovery
Zabbix в badoo, от lld к super discovery
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера
 
Cпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложенияCпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложения
 
Первые шаги с RabbitMQ
Первые шаги с RabbitMQПервые шаги с RabbitMQ
Первые шаги с RabbitMQ
 
Drupal Highload - Klera Vilenskaya
Drupal Highload - Klera VilenskayaDrupal Highload - Klera Vilenskaya
Drupal Highload - Klera Vilenskaya
 
Drupal and NodeJS.
Drupal and NodeJS.Drupal and NodeJS.
Drupal and NodeJS.
 

Semelhante a SignalR

Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
Yandex
 
C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.
Igor Shkulipa
 
Flash Media Server
Flash Media ServerFlash Media Server
Flash Media Server
dinosaur
 
Обзор новых возможностей Cisco Contact Center Express 10
Обзор новых возможностей Cisco Contact Center Express 10 Обзор новых возможностей Cisco Contact Center Express 10
Обзор новых возможностей Cisco Contact Center Express 10
Cisco Russia
 

Semelhante a SignalR (20)

DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
 
Fiddler
FiddlerFiddler
Fiddler
 
IT talk Odessa. Device Hive
IT talk Odessa. Device HiveIT talk Odessa. Device Hive
IT talk Odessa. Device Hive
 
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
 
Реализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFРеализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCF
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
 
Web servers
Web servers Web servers
Web servers
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.
 
Azure web apps - designing and debugging
Azure web apps  - designing and debuggingAzure web apps  - designing and debugging
Azure web apps - designing and debugging
 
Flash Media Server
Flash Media ServerFlash Media Server
Flash Media Server
 
Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5
 
Обзор новых возможностей Cisco Contact Center Express 10
Обзор новых возможностей Cisco Contact Center Express 10 Обзор новых возможностей Cisco Contact Center Express 10
Обзор новых возможностей Cisco Contact Center Express 10
 
Мировые информационные ресурсы. Лекция 2
Мировые информационные ресурсы. Лекция 2Мировые информационные ресурсы. Лекция 2
Мировые информационные ресурсы. Лекция 2
 
Протоколы уровня приложения в браузере, Илья Кутуков (Parallels)
Протоколы уровня приложения в браузере, Илья Кутуков (Parallels)Протоколы уровня приложения в браузере, Илья Кутуков (Parallels)
Протоколы уровня приложения в браузере, Илья Кутуков (Parallels)
 
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
Веб-сервер
Веб-серверВеб-сервер
Веб-сервер
 
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 

SignalR

  • 2. SignalR SignalR - набор библиотек позволяющих реализовать передачу данных между клиентом и сервером в real-time Подходы: 1. Pull (клиент отдает, сервер принимает) 2. Push (клиент слушает, сервер отдает)
  • 4. Транспорт Описание Достоинства Недостатки Polling Постоянный опрос сервера Ajax- запросами + простота реализации + поддержка во всех современных браузерах - задержка в результатах - при уменьшении задержки существенно увеличивается нагрузка на сервер Long Polling Ajax-запросы, идущие один за другим, но каждый запрос держится открытым в течение нескольких минут + сниженная нагрузка на сервер по сравнению с обычным Polling + уменьшенный трафик + поддержка во всех современных браузерах - больше одновременно открытых соединений, т.к. каждый запрос живет дольше Forever Frame Создается скрытый фрейм который непрерывно посылает запрос к конечной точке на сервере - выделеное соединение между клиентом и сервером - only for IE Server-Sent Events Стандарт HTML5, работающий поверх HTTP. Позволяет создавать долгоживущее одностороннее соединение с сервером, чтобы сервер мог отправлять данные на клиент + нет необходимости постоянно пересоединяться с сервером + нет изменений на стороне сервера, поэтому работает на всех современных веб-серверах - не поддерживается в IE (даже в IE10) - работает только в направлении сервер –> клиент (на сервер можно отправлять обычные Ajax запросы) WebSockets Новый протокол (ws:// и wss://), работающий поверх TCP на одном уровне с HTTP. Позволяет создавать двустороннее долгоживущее соединение с клиентом + нет необходимости постоянно пересоединяться с сервером + работает в двустороннем режиме - поддерживается не во всех веб- серверах (IIS8) - поддерживается не во всех браузерах (в IE7-9, Android)
  • 6.
  • 7. Hub Hub - содержит методы взаимодействия клиентов и сервера.
  • 8. Hub API 1. Context - содержит информацию о текущем подключении 2.Clients.All. - вызвать всех 3.Clients.Caller. - вызвать только у себя 4.Clients.Others. - вызывать у всех кроме себя 5.Clients.Client(Context.ConnectionId). - вызвать у определенного клиента 6.Clients.AllExcept(connectionId). - вызвать у всех кроме определенного клиента
  • 9. Hub API - Groups
  • 10. HubProxy SignalR проецирует Hub в виде Proxy для взаимодействия на клиентах
  • 12. Типовые сценарии использования ● Чат/Видеоконференции ● Push-нотификации ● Dashboard-мониторинги ● Realtime Progress-bars ● Совместное редактирование документов ● Message Bus в распределенных системах ● …...
  • 14. Действия: 1. В системе происходит событие инициирующее нотификацию 2.В этой части серверного кода создается контекст необходимого хаба 3.Через контекст отправляется сообщение на клиент 4.Клиент никого не опрашивает а просто слушает сервер и дожидается сообщения Push-notifications SignalR Push Notifications - извещают пользователя или группу пользователей в Real-time об каком либо событии.
  • 17.