diff options
Diffstat (limited to 'extensions/websocket/01_websocket.js')
-rw-r--r-- | extensions/websocket/01_websocket.js | 56 |
1 files changed, 23 insertions, 33 deletions
diff --git a/extensions/websocket/01_websocket.js b/extensions/websocket/01_websocket.js index c77af4566..9fc608958 100644 --- a/extensions/websocket/01_websocket.js +++ b/extensions/websocket/01_websocket.js @@ -118,44 +118,32 @@ url: wsURL.href, protocols: protocols.join(", "), }).then((create) => { - if (create.success) { - this.#rid = create.rid; - this.#extensions = create.extensions; - this.#protocol = create.protocol; - - if (this.#readyState === CLOSING) { - core.opAsync("op_ws_close", { - rid: this.#rid, - }).then(() => { - this.#readyState = CLOSED; + this.#rid = create.rid; + this.#extensions = create.extensions; + this.#protocol = create.protocol; + + if (this.#readyState === CLOSING) { + core.opAsync("op_ws_close", { + rid: this.#rid, + }).then(() => { + this.#readyState = CLOSED; - const errEvent = new ErrorEvent("error"); - errEvent.target = this; - this.dispatchEvent(errEvent); + const errEvent = new ErrorEvent("error"); + errEvent.target = this; + this.dispatchEvent(errEvent); - const event = new CloseEvent("close"); - event.target = this; - this.dispatchEvent(event); - tryClose(this.#rid); - }); - } else { - this.#readyState = OPEN; - const event = new Event("open"); + const event = new CloseEvent("close"); event.target = this; this.dispatchEvent(event); - - this.#eventLoop(); - } + tryClose(this.#rid); + }); } else { - this.#readyState = CLOSED; - - const errEvent = new ErrorEvent("error"); - errEvent.target = this; - this.dispatchEvent(errEvent); + this.#readyState = OPEN; + const event = new Event("open"); + event.target = this; + this.dispatchEvent(event); - const closeEvent = new CloseEvent("close"); - closeEvent.target = this; - this.dispatchEvent(closeEvent); + this.#eventLoop(); } }).catch((err) => { this.#readyState = CLOSED; @@ -362,7 +350,9 @@ case "error": { this.#readyState = CLOSED; - const errorEv = new ErrorEvent("error"); + const errorEv = new ErrorEvent("error", { + message: value, + }); errorEv.target = this; this.dispatchEvent(errorEv); |