Общие сведения об ASP.NET CoreSignalR

Что такое SignalR?

SignalR ASP.NET Core — это библиотека с открытым кодом, которая упрощает добавление веб-функций в режиме реального времени в приложения. Веб-функции в режиме реального времени позволяют серверным кодом мгновенно отправлять содержимое клиентам.

Хорошие кандидаты на SignalR:

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

SignalRпредоставляет API для создания вызовов удаленных процедур между серверами (RPC). RPC вызывают функции на клиентах из кода .NET Core на стороне сервера. Существует несколько поддерживаемых платформ, каждая из которых имеет соответствующий клиентский пакет SDK. Из-за этого вызов RPC вызывает различные языки программирования.

Ниже приведены некоторые функции SignalR для ASP.NET Core.

  • Автоматически обрабатывает управление подключениями.
  • Одновременно отправляет сообщения всем подключенным клиентам. Например, комната чата.
  • Отправляет сообщения определенным клиентам или группам клиентов.
  • Масштабы для обработки увеличения трафика.

Источник размещается в SignalR репозитории на сайте GitHub.

Транспорты

SignalR поддерживает следующие методы обработки обмена данными в режиме реального времени (в порядке корректного резервирования):

  • WebSockets
  • События, посылаемые сервером
  • Длительный опрос

SignalR автоматически выбирает лучший метод транспорта, который находится в пределах возможностей сервера и клиента.

Концентраторы

SignalR использует центры для обмена данными между клиентами и серверами.

Концентратор — это высокоуровневый конвейер, который позволяет клиенту и серверу вызывать методы друг друга. SignalR автоматически обрабатывает отправку через границы компьютера, позволяя клиентам вызывать методы на сервере и наоборот. Вы можете передавать строго типизированные параметры методам, что обеспечивает привязку модели. SignalR предоставляет два встроенных протокола концентратора: текстовый протокол на JSоснове ON и двоичный протокол на основе MessagePack. MessagePack обычно создает небольшие сообщения по сравнению с JSON. Старые браузеры должны поддерживать XHR уровня 2 , чтобы обеспечить поддержку протокола MessagePack.

Центры вызывают клиентский код, отправляя сообщения, содержащие имя и параметры метода на стороне клиента. Объекты, отправленные в качестве параметров метода, десериализуются с помощью настроенного протокола. Клиент пытается сопоставить имя с методом в клиентском коде. Когда клиент находит совпадение, он вызывает метод и передает ему десериализованные данные параметров.

Дополнительные ресурсы