Skip to content

Unable to use nhooyr/websocket in WASM running in Node.js: nhooyr/websocket should process 'error' event #400

Closed
@sza-1

Description

@sza-1

Probably websocket#Conn.init should call c.ws.OnError to subscribe on and process WebSocket#error event.

The issue is the following:

https://github.com/websockets/ws is the most popular WebSocket implementation for the Node.js. It is based on EventEmitter, which throws an exception on any unhandled connection error. Actually it emits error event and then close event. If there is no event listener for error event, then EventEmitter throws an exception and Node.js crashes by default (this behaviour may be fixed with node:domain, but it is deprecated in Node.js 20.5.0). Writers of JavaScript code unable to add an error listener, since nhooyr/websocket creates WebSocket object internally, so it makes nhooyr/websocket pretty unusable in Node.js in case of invalid WSS URL or any transport error.

Probably adding of websocket#Conn.releaseOnClose and calling c.ws.OnError should fix the issue.

Found on Node.js 20.5.0, websockets/ws 8.13.0 and nhooyr/websocket 1.8.7.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions