Socket IO несколько соединений в приложении реакции - PullRequest
0 голосов
/ 12 июня 2019

Я не вставляю здесь никакого кода, потому что это очень прямой вопрос. В моем родительском компоненте я пытаюсь передать socket.io как опору одному из дочерних компонентов, но я вижу несколько соединений. В моем дочернем компоненте я слушаю событие в componentDidMount. Я попытался console.log в дочернем componentDidMount, и он вызывается только один раз.

Каков стандартный способ использования только одного соединения для всех компонентов? И зачем выдавать реквизиты, показывающие несколько соединений на стороне сервера?

1 Ответ

0 голосов
/ 13 июня 2019

То, что я хотел бы сделать, это иметь центральный контроллер сокетов, socketController, и внутри его метода init я бы подключил его к сокету и начал наблюдать за сообщениями.

Каждое проходящее сообщение должно иметькак «dataType», который будет определять, куда он направляется, и «data», который представляет собой данные, которые передаются.

socketController должен затем позволять чему-либо передаваться в слушателе, socketController.addListener = function(dataType, listener) {} иВы можете сохранить массив слушателей для каждого типа данных.Также реализуйте removeListener, чтобы выполнить указанную выше функцию.

И затем в каждом сообщении сокета в socketController, проверьте dataType, переберите все прослушиватели для этого dataType и отправьте им данные.

В ваших компонентах вы можете установить слушателей в componentDidMount и удалить их в componentWillUnmount.

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