EventEmitter + Node
Имеем несколько модулей с разными задачами, слабо связанные по функциональности между собой. Им всем необходим некий механизм оповещения (например через websocket) о результате своей деятельности (возникающих ошибках). Предположительно можно было создать одного слушателя EventEmitter, который бы собирал все сообщения и дальше уже по правилам обмена делал бы доставку в другие системы.
Но вот в чем вопрос, экземпляр такого класса должен быть доступен всем остальным модулям. Т.е. нельзя создать слушателя с сообщением 'ERROR', и в каком то модуле сделать emitter = new EventEmitter(); emitter.emit('ERROR', {text:' error '} ); только через экземпляр ранее созданного класса EventEmitter который делает отправку. Достигнуть это можно только через предоставление экземпляра через глобальный контекст. Фактически я могу в том же контексте создать нужный мне обработчик - функцию и все взаимодействие модулей через через ее вызовы Вопрос - и в чем разница? В глобальном контексте экземпляр или функция? Может что то недопонимаю? Подскажите студенту, спасибо |
может поздно, ну или как, говорится лучше, рано, чем поздно, хотя в нашем случае поздно, ты тут написал я часть не понял, как-то было дело, steam траде гут было дело, у меня пахало 20 ботов стимовсих и еще 5 промежуточных, которые мониторили сайты, и еще 2 основных, которые все сливали в 1, а все ошибки, управление и т.п. с сделал через отдельный канал на сокетах, которые работали туда-сюда, если ошибка где-то была, скажем на боте №1 он отправлет этот сигнал со всей идентификацией на любой из моих серваков, к которому он был подключен, тот, зная, что это ошибка передает "as is" типа, но с параметрами откуда пришло, также передается далее по цепочик, на 1 из 2-х серваков, которые рулили всем, если тут решение не найдено, то эта вся цепочка уже пересылалась мне на ком домашний и я уже зырил че да как. ну как правило, если гавно ошибка, то просто перезапускал сервак на node откуда ошибка пришла
|
Часовой пояс GMT +3, время: 06:15. |