mirror of
https://github.com/samuelthomas2774/nxapi.git
synced 2026-09-14 14:26:48 -05:00
Set event stream reconnect time from Retry-After header
This commit is contained in:
@@ -566,11 +566,11 @@ export class ZncProxyDiscordPresence extends Loop {
|
||||
protected proxy_temporary_errors = 0;
|
||||
|
||||
async update() {
|
||||
if (this.is_sse) {
|
||||
return await this.useEventStream();
|
||||
}
|
||||
|
||||
try {
|
||||
if (this.is_sse) {
|
||||
return await this.useEventStream();
|
||||
}
|
||||
|
||||
const result = await getPresenceFromUrl(this.presence_url);
|
||||
const [presence, user, data] = result;
|
||||
this.last_data = data;
|
||||
@@ -598,7 +598,7 @@ export class ZncProxyDiscordPresence extends Loop {
|
||||
}
|
||||
} catch (err) {
|
||||
if (err instanceof ErrorResponse) {
|
||||
if (err.response.headers.get('Content-Type')?.match(/^text\/event-stream(;|$)/)) {
|
||||
if (!this.is_sse && err.response.headers.get('Content-Type')?.match(/^text\/event-stream(;|$)/)) {
|
||||
this.is_sse = true;
|
||||
debug('Presence URL responded with an event stream');
|
||||
return LoopResult.OK_SKIP_INTERVAL;
|
||||
|
||||
@@ -151,8 +151,6 @@ export default class EventSource {
|
||||
this._controller = controller;
|
||||
this._connecting = connecting;
|
||||
|
||||
let _response: Response | null = null;
|
||||
|
||||
connecting.then(async response => {
|
||||
const url = new URL(this.url);
|
||||
url.search = '';
|
||||
@@ -171,7 +169,7 @@ export default class EventSource {
|
||||
const retry_after = response.headers.get('Retry-After');
|
||||
|
||||
if (retry_after && /^\d+$/.test(retry_after)) {
|
||||
this._retry_after = parseInt(retry_after);
|
||||
this._retry_after = parseInt(retry_after) * 1000;
|
||||
}
|
||||
|
||||
if (!response.ok) {
|
||||
|
||||
Reference in New Issue
Block a user