Prevent sending disconnect if disposed

This commit is contained in:
Asher 2019-07-02 11:33:37 -05:00
parent 57a8186e88
commit a6703ecb98
No known key found for this signature in database
GPG Key ID: D63C1EF81242354A
1 changed files with 16 additions and 5 deletions

View File

@ -13,6 +13,8 @@ export interface SocketOptions {
}
export class Protocol extends PersistentProtocol {
private disposed: boolean = false;
public constructor(
secWebsocketKey: string,
socket: net.Socket,
@ -40,13 +42,22 @@ export class Protocol extends PersistentProtocol {
].join("\r\n") + "\r\n\r\n");
}
public sendDisconnect(): void {
if (!this.disposed) {
super.sendDisconnect();
}
}
public dispose(error?: Error): void {
if (!this.disposed) {
this.disposed = true;
if (error) {
this.sendMessage({ type: "error", reason: error.message });
}
super.dispose();
this.getSocket().dispose();
}
}
/**
* Perform a handshake to get a connection request.