Keys auf SSE umgestellt
This commit is contained in:
@@ -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)
|
||||
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user