SlideShare a Scribd company logo
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?
SignalR
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
SignalR
Вопросы?

More Related Content

PPTX
Презентация "Web-интерфейс для автоматизации и мониторинга OpenVPN сети"
PDF
Видео + Конференция. Возможности решений TrueConf. Стас Солдатов
PDF
08 - Web-технологии. Архитектура frontend-backend
PDF
17 - Web-технологии. Real Time сообщения
PPT
Web socket и приложения реального времени
PPTX
Реализация нагруженных и отказоустойчивых систем
PDF
Доставка данных в реальном времени.
PPTX
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Презентация "Web-интерфейс для автоматизации и мониторинга OpenVPN сети"
Видео + Конференция. Возможности решений TrueConf. Стас Солдатов
08 - Web-технологии. Архитектура frontend-backend
17 - Web-технологии. Real Time сообщения
Web socket и приложения реального времени
Реализация нагруженных и отказоустойчивых систем
Доставка данных в реальном времени.
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)

What's hot (20)

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

Similar to SignalR (20)

PDF
"Real-time приложения. Модные фреймворки. Что дальше?" Дементьев Владимир, Ev...
PPT
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
PDF
Михаил Давыдов: Транспорт, ajax
PDF
JavaScript Базовый. Занятие 09.
PPTX
Periculum est in mora
PPTX
HTML5 WebSockets and WebWorkers
PDF
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
PDF
«Сетевые протоколы для веб разработчика — выжимаем максимум»
PPTX
Браузерные API обмена данными: какие и зачем
PPTX
архитектура и принципы работы типового Web приложения
PPTX
живые сайты
PDF
Mihail davidov js-ajax
PDF
Ajax and Transports (in russian)
PDF
Михаил Давыдов — Транспорт, Ajax
PPTX
Web app syncronizations, Sockets, tricks and hacks
PPTX
Технологии и подходы в разработке высоконагруженных приложений
PDF
Игорь Кашкута
PPTX
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...
PDF
WebSockets
PPT
Web sockets
"Real-time приложения. Модные фреймворки. Что дальше?" Дементьев Владимир, Ev...
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
Михаил Давыдов: Транспорт, ajax
JavaScript Базовый. Занятие 09.
Periculum est in mora
HTML5 WebSockets and WebWorkers
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
«Сетевые протоколы для веб разработчика — выжимаем максимум»
Браузерные API обмена данными: какие и зачем
архитектура и принципы работы типового Web приложения
живые сайты
Mihail davidov js-ajax
Ajax and Transports (in russian)
Михаил Давыдов — Транспорт, Ajax
Web app syncronizations, Sockets, tricks and hacks
Технологии и подходы в разработке высоконагруженных приложений
Игорь Кашкута
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...
WebSockets
Web sockets
Ad

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)
  • 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 об каком либо событии.