Как уведомить без веб-сокета - PullRequest
1 голос
/ 04 июля 2019

Я хочу интегрировать простую систему уведомлений в свое приложение реагирования. Я хочу уведомить, например: - новое сообщение (когда пользователю системы требуется время для перекодирования прикрепленного носителя и публикации) - пропущены настройки (пользователю необходимо собрать некоторую информацию) - интересные посты и т.д ..

Есть простой способ добавить веб-сокет, например socket.io, в приложениеactjs с лямбда-сервером aws?

Все уведомления не нужно читать в режиме реального времени, возможно, вызов ajax каждые 2 минуты может решить мою проблему, но в этом случае кто-то может помочь мне избежать вызова ajax, если приложение не используется (например, если приложение остается открытым на вкладке переднего плана ...)

componentDidMount() {
    this.liveUpdate()
    setInterval(this.liveUpdate, 120000);
}

liveUpdate() {
    axios.get(endpoint.posts+'/live/', cfg)
        .then(res => {
            // ...
        });
}

Этот код находится в компоненте нижнего колонтитула, вызов происходит каждые 120 секунд, но вызов все равно будет происходить, даже если пользователь оставит приложение открытым в браузере и не будет его использовать, это на лямбда-бэкэнде означает пустую трата денег .

1 Ответ

0 голосов
/ 04 июля 2019

Есть 3 основных способа уведомления, о которых я могу думать в данный момент ...

  1. Длинный опрос (с использованием AJAX и т. Д.)
  2. WebSocket
  3. Push-уведомление

Push (хотя) требует разрешения от пользователя

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