From fdfd5381a556661a181187da6beb3b84fe01c510 Mon Sep 17 00:00:00 2001 From: Andrew Stanton-Nurse Date: Thu, 3 May 2018 09:26:48 -0700 Subject: [PATCH] clean up the shutdown timer --- clients/ts/signalr/src/LongPollingTransport.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/clients/ts/signalr/src/LongPollingTransport.ts b/clients/ts/signalr/src/LongPollingTransport.ts index b2b456f8a2..c8e31ee7ce 100644 --- a/clients/ts/signalr/src/LongPollingTransport.ts +++ b/clients/ts/signalr/src/LongPollingTransport.ts @@ -147,6 +147,14 @@ export class LongPollingTransport implements ITransport { } } } finally { + // Trigger the poll aborted token so we don't set the shutdown timer + this.pollAbort.abort(); + + // Clean up the shutdown timer if it was registered + if (this.shutdownTimer) { + clearTimeout(this.shutdownTimer); + } + // Fire our onclosed event if (this.onclose) { this.logger.log(LogLevel.Trace, `(LongPolling transport) Firing onclose event. Error: ${closeError || ""}`); @@ -179,7 +187,7 @@ export class LongPollingTransport implements ITransport { this.logger.log(LogLevel.Trace, "(LongPolling transport) DELETE request accepted."); } finally { - // Abort the poll after 5 seconds if the server doesn't stop it. + // Abort the poll after the shutdown timeout if the server doesn't stop the poll. if (!this.pollAbort.aborted) { this.shutdownTimer = setTimeout(() => { this.logger.log(LogLevel.Warning, "(LongPolling transport) server did not terminate after DELETE request, canceling poll.");