events

Внутрішня шина подій аддона з'єднує вхідні HTTP- і Socket.IO-обробники з вашим кодом.

events.On(name, handler)

Аргумент Опис
name Має збігатися з callbackName з network.endpoints.create або network.socketEndpoints.create
handler Async або sync функція; значення повернення стає тілом HTTP-відповіді (для HTTP-маршрутів)

HTTP-обробники отримують:

{ query, params, body, headers?, rawBody? }

headers і rawBody доступні на POST-маршрутах (корисно для перевірки підпису webhook).

Повертає підписку { id, Destroy() }.

Приклад: HTTP webhook

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

Приклад: повернення redirect (OAuth)

Обробники можуть повертати об'єкти, які розуміє main process:

return { redirect: ui.auth.generateSuccess() };

Обробники Socket.IO

При використанні network.socketEndpoints.create обробник отримує:

{
  type: 'connect' | 'disconnect' | 'event',
  socketId,
  event?,      // for type === 'event'
  data?,       // client payload
}

Для type === 'event' значення повернення, відмінне від undefined, надсилається клієнту як reply.

Життєвий цикл

Скасуйте реєстрацію через subscription.Destroy() або при перезапуску worker.