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)
8. Hub API
1. Context - содержит информацию о текущем подключении
2.Clients.All. - вызвать всех
3.Clients.Caller. - вызвать только у себя
4.Clients.Others. - вызывать у всех кроме себя
5.Clients.Client(Context.ConnectionId). - вызвать у определенного
клиента
6.Clients.AllExcept(connectionId). - вызвать у всех кроме определенного
клиента
12. Типовые сценарии использования
● Чат/Видеоконференции
● Push-нотификации
● Dashboard-мониторинги
● Realtime Progress-bars
● Совместное редактирование документов
● Message Bus в распределенных системах
● …...
14. Действия:
1. В системе происходит событие инициирующее нотификацию
2.В этой части серверного кода создается контекст необходимого хаба
3.Через контекст отправляется сообщение на клиент
4.Клиент никого не опрашивает а просто слушает сервер и дожидается
сообщения
Push-notifications
SignalR Push Notifications - извещают пользователя или группу
пользователей в Real-time об каком либо событии.