Spaces:
Paused
Paused
Download apps/api/src/core/bus.js from nenbuj/we-superapp: direct link, hf CLI and curl.
- Browser
- Download file 799 Bytes
-
https://huggingface.co/spaces/nenbuj/we-superapp/resolve/main/apps/api/src/core/bus.js
- Command line
-
hf download hf://spaces/nenbuj/we-superapp/apps/api/src/core/bus.js
-
curl -L -o bus.js https://huggingface.co/spaces/nenbuj/we-superapp/resolve/main/apps/api/src/core/bus.js
799 Bytes
| // Ядро: реалтайм-шина. Ведёт Claude. | |
| // Кодекс после записи в БД вызывает bus.emit(space_id, { type, space_id, payload }). | |
| // Сокетный слой (ws.js) подписывается на эти события и рассылает клиентам. | |
| import { EventEmitter } from 'node:events'; | |
| class Bus extends EventEmitter { | |
| // emit события конкретного пространства | |
| emit(spaceId, event) { | |
| return super.emit('space:' + spaceId, event); | |
| } | |
| onSpace(spaceId, handler) { | |
| super.on('space:' + spaceId, handler); | |
| return () => super.off('space:' + spaceId, handler); | |
| } | |
| } | |
| export const bus = new Bus(); | |
| bus.setMaxListeners(0); // много подписчиков-сокетов — это норма | |