Skip to content

Commit 8a5164b

Browse files
committed
Tidy up events
1. Avoid generating two `onclose` calls on explicit `close()`. 2. On disconnect, make the close reason available to `onconnecting`. (The first connect also fires `onconnecting`, and can be distinguished with `event.code !== undefined` or similar; alternately maybe this should be a "reconnecting" event only?) 3. Correct typo in generation of `error` event. Note that having the close reasons on `onconnecting` instead of `onclose` means that it's not completely API compatible with `WebSocket`, but then it wasn't before either.
1 parent 5a883c4 commit 8a5164b

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

reconnecting-websocket.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,14 @@
217217
ws = null;
218218
if (forcedClose) {
219219
self.readyState = WebSocket.CLOSED;
220-
self.onclose(event);
221220
eventTarget.dispatchEvent(generateEvent('close'));
222221
} else {
223222
self.readyState = WebSocket.CONNECTING;
224-
eventTarget.dispatchEvent(generateEvent('connecting'));
223+
var e = generateEvent('connecting');
224+
e.code = event.code;
225+
e.reason = event.reason;
226+
e.wasClean = event.wasClean;
227+
eventTarget.dispatchEvent(e);
225228
if (!reconnectAttempt && !timedOut) {
226229
if (self.debug || ReconnectingWebSocket.debugAll) {
227230
console.debug('ReconnectingWebSocket', 'onclose', url);
@@ -246,7 +249,7 @@
246249
if (self.debug || ReconnectingWebSocket.debugAll) {
247250
console.debug('ReconnectingWebSocket', 'onerror', url, event);
248251
}
249-
eventTarget.dispatchEvent(generateEvent('event'));
252+
eventTarget.dispatchEvent(generateEvent('error'));
250253
};
251254
}
252255
connect(false);

0 commit comments

Comments
 (0)