Вторник, 30 мая, 2017

Что такое SignalR?

комментарии: 3

ASP.NET SignalR - это библиотека для ASP.NET разработчиков, которая упрощает добавление в приложения компонентов, работающих в реальном времени. Функциональность, работающая в реальном времени – это способность сервера отдать свежие данные подключенным клиентам немедленно, вместо того, чтобы ждать пока клиенты запросят эти данные.

SignalR может быть использован для добавления в ASP.NET приложения любого вида веб-функциональности, работающей в реальном времени. Сразу напрашивается пример с чатом на сайте, но с SignalR можно делать гораздо больше. Каждый раз, когда пользователь обновляет страницу, чтобы получить новые данные или страница применяет технику long polling (открывается соединение на клиенте и не закрывается совсем, ожидая события от сервера), это явные кандидаты для использования SignalR. Примерами могут также быть панели мониторинга (dashboards), приложения для совместной работы (например совместное редактирование документов), получение актуальных данных о выполнении какой-либо работы или формы ввода данных в реальном времени.

SignalR также раскрывает просторы для нового типа веб-приложений, где требуется быстрый обмен данными с сервером, а это игровые приложения в реальном времени.

SignalR имеет простой API для вызовов удаленных процедур от сервера к клиенту (RPC server-to-client), которые вызывают Javascript функции в клиентских браузерах из кода .NET сервера. SignalR также имеет API для управления соединениями (например подключением или отключением) и группировкой соединений.

SignalR управляет соединениями автоматически, и отсылает сообщения всем подключенным клиентам одновременно, как в чате. Возможно также отсылать сообщения только определенным клиентам. Соединение между клиентом и сервером постоянное, в отличии от классического HTTP соединения, которое повторно устанавливает связь для каждого подключения.

SignalR поддерживает функциональность "server push" (толкни сервер), когда код на сервере может отправить сообщения в браузеры, используя Remote Procedure Calls (RPC), это быстрее работает, чем обычная модель "запрос-ответ", существующая в вебе сегодня.

SignalR приложения могут масштабироваться на тысячах клиентах, используя Service Bus, SQL Server или Redis.

SignalR поставляется с открытым кодом, который доступен на GitHub.

SignalR и WebSocket

SignalR использует новый протокол обмена сообщениями WebSocket, там где это возможно, и переходит на более старые протоколы, там где это необходимо. Конечно можно написать приложение напрямую используя WebSocket, но с SignalR большую часть функциональности уже не придется реализовывать. Самое главное с SignalR не надо будет беспокоиться о написании кода для поддержки старых протоколов обмена сообщениями. SignalR также избавит от необходимости обновления протокола WebSocket. И будет поддерживать приложение в целостном состоянии при переходе на новые версии.

SignalR обеспечит всю ту функциональность, которую придется писать разработчику самому, использующему только WebSocket, а это поддержка старых транспортных протоколов, а также ревизия и правка кода приложения для новых версий протокола WebSocket.

Комментарии

Лёха Палаткин Лёха Палаткин 21 мая, 2014, 06:03
Большое спасибо за статью.
Святослав Святослав 30 июля, 2014, 01:44
Спасибо
Рома Глущук Рома Глущук 09 февраля, 2017, 09:22
Отличная статья. Хотелось бы продолжения.

 

Добавить комментарий

Войти через Twitter Войти через Facebook Войти через ВКонтакте Войти через Github Войти через Google Войти через LinkedIn

Copyright © 2013 All Rights Reserved for CodeHint.ru      Powered by Windows Azure