events
Внутренняя шина событий аддона связывает входящие HTTP и Socket.IO с вашим кодом.
events.On(name, handler)
| Аргумент | Описание |
|---|---|
name |
Должен совпадать с callbackName из network.endpoints.create или network.socketEndpoints.create |
handler |
Синхронная или async-функция; возвращаемое значение становится телом HTTP-ответа (для HTTP-маршрутов) |
HTTP-обработчики получают:
{ query, params, body, headers?, rawBody? }
headers и rawBody доступны на POST-маршрутах (удобно для проверки подписи вебхука).
Возвращает подписку { id, Destroy() }.
Пример: HTTP-вебхук
await network.endpoints.create('webhook', 'POST', 'onWebhook');
events.On('onWebhook', ({ body, headers, rawBody }) => {
console.log(body);
return { received: true };
});
URL клиента:
POST http://localhost:{port}/addon/my_addon/webhook
Пример: редирект (OAuth)
Обработчики могут возвращать объекты, которые понимает главный процесс:
return { redirect: ui.auth.generateSuccess() };
Обработчики Socket.IO
При network.socketEndpoints.create обработчик получает:
{
type: 'connect' | 'disconnect' | 'event',
socketId,
event?, // для type === 'event'
data?, // payload клиента
}
Для type === 'event' ненулевое возвращаемое значение отправляется клиенту как reply.
Жизненный цикл
Отпишитесь через subscription.Destroy() или при перезапуске воркера.