You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bring webhook support up to Pusher's webhook spec so backends relying on Pusher webhooks work unchanged.
Current state (as of v1.5.2)
channel_vacated is implemented (notifyChannelVacancy in src/websocket.ts) with an HMAC X-Pusher-Signature, X-Pusher-Key header, retries with exponential backoff, and a 1s debounce delay.
channel_occupied webhook when the first subscriber joins a channel
member_added / member_removed webhooks for presence channels
Match Pusher's webhook body format: top-level time_ms alongside events, and per-event fields (name, channel, user_id where applicable) — see Pusher webhooks reference
Goal
Bring webhook support up to Pusher's webhook spec so backends relying on Pusher webhooks work unchanged.
Current state (as of v1.5.2)
channel_vacatedis implemented (notifyChannelVacancyinsrc/websocket.ts) with an HMACX-Pusher-Signature,X-Pusher-Keyheader, retries with exponential backoff, and a 1s debounce delay.Remaining work
channel_occupiedwebhook when the first subscriber joins a channelmember_added/member_removedwebhooks for presence channelstime_msalongsideevents, and per-event fields (name,channel,user_idwhere applicable) — see Pusher webhooks referenceclient_eventwebhook once client events land (Support client events (client-*) #13)subscriptionVacancyUrlto a single webhook URL config since it will carry more than vacancy events