diff --git a/src/client/Client.tsx b/src/client/Client.tsx index 4ed9de5..b85c74d 100644 --- a/src/client/Client.tsx +++ b/src/client/Client.tsx @@ -263,6 +263,10 @@ export default class Client { if (!this.jclient) return; const session = this.jclient.getSession(); + // Subscribe to server-pushed events + if (session.eventSourceUrl) { + this._subscribeToEventSource(session.eventSourceUrl); + } this.state.session = { ...session, accounts: Object.fromEntries( @@ -277,4 +281,16 @@ export default class Client { if (!this.state.session) return; this._triggerChange("Session"); } + + _subscribeToEventSource(url: string) { + // For typechecker + if (this.jclient === null) return; + const eventSourceUrl = url + .replace("{types}", "*") + .replace("{closeafter}", "no") + .replace("{ping}", "60"); + this.jclient.subscribeToEvents(eventSourceUrl, (e) => { + console.log("Got an event!", e); + }); + } } diff --git a/src/client/jmap-client-ts b/src/client/jmap-client-ts index d33318d..2ef5f5b 160000 --- a/src/client/jmap-client-ts +++ b/src/client/jmap-client-ts @@ -1 +1 @@ -Subproject commit d33318d3e1f7e838d9e9b828f233b98f6b21d88f +Subproject commit 2ef5f5b7fa0a22a499bd32831ac24622f17e10e6