Keys auf SSE umgestellt

This commit is contained in:
Bastian Wagner
2026-03-05 14:51:45 +01:00
parent f88fe93182
commit ac2117b64b
13 changed files with 217 additions and 15 deletions

View File

@@ -25,7 +25,11 @@ export class ApiService {
public settings: BehaviorSubject<Object> = new BehaviorSubject<Object>(null!);
constructor() { }
constructor() {
setTimeout(() => {
this.setupKeyFeed();
}, 2000)
}
getMe(): Promise<IUser> {
return new Promise(resolve => {
@@ -87,7 +91,7 @@ export class ApiService {
).subscribe({
next: (key: IKey) => resolve(key),
error: () => resolve(null),
complete: () => { this.refreshKeys(); }
// complete: () => { this.refreshKeys(); }
})
})
}
@@ -424,4 +428,29 @@ export class ApiService {
})
}
private async setupKeyFeed() {
const ticket = await this.getSSETicket();
console.log(ticket)
const sseSource = new EventSource('api/sse/key?ticket=' + ticket);
sseSource.addEventListener('message', (e: MessageEvent<string>) => {
console.log(e.data)
this.keys.next(JSON.parse(e.data))
})
sseSource.addEventListener('error', (error) => {
console.error(error)
})
}
private getSSETicket() {
return new Promise<string>(resolve => {
this.http.get<{ ticket: string }>('api/sse/ticket').subscribe({
next: (ticket) => {
return resolve(ticket.ticket)
}
})
})
}
}