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