Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Что такое SignalR?
ASP.NET Core SignalR — это библиотека с открытым исходным кодом, которая упрощает добавление веб-функций в приложения в режиме реального времени. Веб-функции в режиме реального времени позволяют серверным кодам мгновенно отправлять содержимое клиентам.
Хорошие кандидаты на SignalR:
- Приложения, требующие частых обновлений с сервера. Примерами являются игры, социальные сети, платформы для голосования, аукционы, карты и приложения GPS.
- Панели и приложения мониторинга. Примеры включают в себя панели мониторинга компании, мгновенные обновления продаж или оповещения о поездках.
- Collaborative apps. Примерами таких приложений служат демонстрационные приложения и программное обеспечение для конференций .
- Приложения, которым требуются уведомления. Уведомления используют социальные сети, электронная почта, чат, игры, оповещения о поездках и многие другие приложения.
SignalRпредоставляет API для создания вызовов удаленных процедур между клиентами (RPC). RPC вызывают функции на клиенте посредством .NET кода, выполняемого на серверной стороне. Существует несколько поддерживаемых платформ, каждый из которых имеет соответствующий клиентский пакет SDK. Из-за этого вызов RPC вызывает различные языки программирования.
Ниже приведены некоторые функции SignalR для ASP.NET Core:
- Автоматически обрабатывает управление подключениями.
- Одновременно отправляет сообщения всем подключенным клиентам. Например, комната чата.
- Отправляет сообщения определенным клиентам или группам клиентов.
- Масштабируется для обработки увеличения трафика.
- SignalR Протокол концентратора
Источник размещен в репозитории SignalR на GitHub.
Transports
SignalR поддерживает следующие методы обработки обмена данными в режиме реального времени (в порядке корректной резервной передачи):
- WebSockets
- Server-Sent Events
- Long Polling
SignalR автоматически выбирает лучший метод транспорта, который находится в пределах возможностей сервера и клиента.
Hubs
SignalR использует центры для обмена данными между клиентами и серверами.
Концентратор — это высокоуровневый конвейер, который позволяет клиенту и серверу вызывать методы друг друга. SignalR обрабатывает отправку по границам компьютера автоматически, позволяя клиентам вызывать методы на сервере и наоборот. В методы можно передавать строго типизированные параметры, которые обеспечивают привязку модели. SignalR предоставляет два встроенных протокола концентратора: текстовый протокол на основе JSON и двоичного протокола на основе MessagePack. MessagePack обычно создает небольшие сообщения по сравнению с JSON. Старые браузеры должны поддерживать уровень XHR 2 , чтобы обеспечить поддержку протокола MessagePack.
Центры вызывают клиентский код, отправляя сообщения, содержащие имя и параметры метода на стороне клиента. Объекты, отправленные в качестве параметров метода, десериализируются с помощью настроенного протокола. Клиент пытается сопоставить имя с методом в клиентском коде. Когда клиент находит совпадение, он вызывает метод и передает в него десериализированные данные параметров.
Браузеры, не поддерживающие ECMAScript 6 (ES6)
SignalR целевые объекты ES6. Для браузеров, не поддерживающих ES6, перезаполните библиотеку в ES5. Дополнительные сведения см. в статье "Начало работы с ES6— транспилирование ES6 в ES5 с traceur и Babel".
Additional resources
ASP.NET Core