Как подписаться на канал Redis из компонента React - PullRequest
0 голосов
/ 19 февраля 2020

Как я могу подписаться на канал Redis внутри React Component, когда он монтируется (т. Е. Внутри componentDidMount ())?

В inte rnet почти везде, где я вижу Реализация Redis с nodejs, но не может найти достаточных подсказок, как использовать это в React App.

На самом деле я хочу обновить данные панели мониторинга электронной почты (приложения реакции), не обновляя страницу. В бэкэнде я использовал djangorest framework. Когда любой API запускается для изменения каких-либо данных, код python выполняет свою работу, а также публикует сообщение в указанном c канале Redis.

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

1 Ответ

1 голос
/ 19 февраля 2020

Реактивный компонент (клиентская технология) не должен иметь доступа к redis (серверная технология) по очевидным вопросам безопасности.

Если вы используете реакцию на стороне сервера для генерации ответов с реакцией, используя узел, то именно этот узел должен предоставить этот доступ.

Если вы хотите получить доступ к redis из веб-интерфейса (с помощью веб-интерфейса) браузер), вы должны установить sh следующую архитектуру:

  • Реагировать на сервер с помощью веб-сокета и прослушивать сообщения.
  • Сервер в node js (с использованием socket.io ), в качестве pnet доступа к ядру (с использованием signalR) повторяется и сообщается об изменениях клиенту благодаря технологии websocket.

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

Но для краткости, на стороне клиента, лучше всего использовать наблюдаемый избыточный стек. В этом случае это будет epi c, который будет обновлять состояние избыточности всякий раз, когда сервер уведомляет что-либо. Если вам не нравится rx js (это очень понятно!), Тогда проще всего было бы использовать mobX (https://mobx.js.org/README.html)

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