В настоящее время у меня есть следующая структура, объект WebsocketService
и несколько FrontendController
с.
WebsocketService
прослушивает веб-сокет (duh) и обновляет внутреннее состояние приложения. Это означает, что в некоторых случаях внешний интерфейс должен обновляться новыми значениями.
Для того, чтобы мой код пользовательского интерфейса и логика приложения были хорошо разделены, я представляю проект, в котором FrontendController
могут подписаться на события, отправленные WebsocketService
и, скорее всего, другими Сервисами позже.
Я прочитал документацию для Создание и запуск событий в MDN . Но все это очень ориентировано на DOM. У моего WebsocketService
, очевидно, нет функции addEventListener
.
Я бы предпочел не использовать сторонние библиотеки. Хак, который приходит на ум, просто имеет где-то id="events"
DOM Node, и каждый подписывается на это. Затем dispatchEvent
s на этом Элементе и пусть FrontendController
s решают, что им небезразлично.
Конечно, я мог бы также реализовать собственную инфраструктуру для всего этого, но я бы также предпочел этого избежать, потому что я ленивый.
Какой чистый способ сделать это? Или есть намного лучшее решение, чтобы отделить логику и интерфейс моего приложения от простого старого javascript?