Уведомление в реальном времени в ASP.NET core mvc - PullRequest
0 голосов
/ 30 апреля 2018

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

Итак, у меня есть проект с EF и сервером SQL и страницами бритвы. В этом проекте две группы администраторов и нормальных людей. Обычные люди имеют доступ к отправке формы с простыми полями, и я хотел бы, чтобы каждый раз, когда пользователь отправлял форму, изменил макет, чтобы администратор мог видеть красный цвет! сообщить ему, что есть новая форма для обзора.

Я пытался вызвать метод, который проверял бы его из поля зрения, но мне не удалось. Также я проверял библиотеку SignalR, но она работает с javascript при прослушивании кликов, и его нельзя прикрепить к методу, ответственному за отправку форм.

Кто-нибудь знает, как это теоретически может работать?

1 Ответ

0 голосов
/ 30 апреля 2018

Обычно все в сети привязано к фиксированному шаблону запроса / ответа. Итак, вы запрашиваете что-то с сервера, и он что-то отвечает, а затем соединение закрывается. Это очень затрудняет создание какого-либо канала связи, где вы активно уведомляетесь об изменениях на стороне сервера.

В настоящее время, как правило, для этого есть два разных метода:

  • Опрос : Обычно это означает, что клиент постоянно запрашивает обновление. Таким образом, каждые X секунд на сервер будет отправляться новый запрос на изменение.

    Существует также альтернатива, называемая «длинный опрос», при которой соединение остается открытым дольше. Клиент делает обычный запрос, но сервер тратит время, чтобы ответить, оставляя ответ доступным, пока не произойдет фактическое обновление (в этом случае ответ затем будет отправлен).

  • Push : здесь могут использоваться различные технологии, чтобы сервер активно передавал информацию клиенту. Существуют некоторые собственные решения для мобильных устройств, но есть также стандартизированный Push API , который в настоящее время не очень хорошо поддерживается в браузерах.

    Другим распространенным способом использования Push является просто постоянное соединение. Обычно это делается с помощью WebSockets , который в основном является полнодуплексным каналом, устанавливаемым между клиентом и сервером, что позволяет обоим отправлять данные в любой момент.

Для приложений реального времени, как правило, рекомендуется использовать WebSockets, хотя в зависимости от ваших клиентов может потребоваться некоторый запасной вариант в форме опроса. SignalR делает именно это: он предоставляет высокоуровневый API-интерфейс для взаимодействия клиента с сервером и сервером для взаимодействия с клиентом, без необходимости беспокоиться о том, как работает базовое соединение.

Также я проверял библиотеку SignalR, но она работает с javascript при прослушивании кликов, и его нельзя прикрепить к методу, ответственному за отправку форм.

SignalR использует JavaScript, да, но любое решение здесь требует JavaScript, поскольку вы запрашиваете интерактивность на стороне клиента. Таким образом, вам нужно установить соединение SignalR в начале вашей веб-страницы, а затем вы можете публиковать сообщения с сервера на подключенных клиентах, когда кто-то еще делает запрос.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...