Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
_close(error?: Error) {
if (this._status.kind === 'CLOSED' || this._status.kind === 'ERROR') {
// already closed
return;
}
const status = error ? {error, kind: 'ERROR'} : CONNECTION_STATUS.CLOSED;
this.setConnectionStatus(status);
this._receivers.forEach(subscriber => {
if (error) {
subscriber.onError(error);
} else {
subscriber.onComplete();
}
});
this._receivers.clear();
this._senders.forEach(subscription => subscription.cancel());
this._senders.clear();
const socket = this._socket;
if (socket) {
socket.removeAllListeners();
socket.end();
this._socket = null;
_close(error?: Error) {
if (this._status.kind === 'CLOSED' || this._status.kind === 'ERROR') {
// already closed
return;
}
const status = error ? {error, kind: 'ERROR'} : CONNECTION_STATUS.CLOSED;
this._setConnectionStatus(status);
this._receivers.forEach(subscriber => {
if (error) {
subscriber.onError(error);
} else {
subscriber.onComplete();
}
});
this._receivers.clear();
this._senders.forEach(subscription => subscription.cancel());
this._senders.clear();
const socket = this._socket;
if (socket) {
(socket.removeEventListener: $FlowIssue)('close', this._handleClosed);
(socket.removeEventListener: $FlowIssue)('error', this._handleClosed);
(socket.removeEventListener: $FlowIssue)('open', this._handleOpened);
const onSocketError = error => {
closeSocket();
subscriber.onError(error);
const status = error ? {error, kind: 'ERROR'} : CONNECTION_STATUS.CLOSED;
this._setConnectionStatus(status);
};
const onMessage = (data: Buffer) => {
_close(error?: Error): void {
if (this._isTerminated()) {
return;
}
if (error) {
this._setConnectionStatus({error, kind: 'ERROR'});
} else {
this._setConnectionStatus(CONNECTION_STATUS.CLOSED);
}
const receivers = this._receivers;
receivers.forEach(r => r.onComplete());
receivers.clear();
const senders = this._senders;
senders.forEach(s => s.cancel());
senders.clear();
this._sentFrames.length = 0;
this._disconnect();
}