Pass close code and reason to WebSocket close event#14
Merged
dimdenGD merged 1 commit intodimdenGD:mainfrom Apr 1, 2026
Merged
Pass close code and reason to WebSocket close event#14dimdenGD merged 1 commit intodimdenGD:mainfrom
dimdenGD merged 1 commit intodimdenGD:mainfrom
Conversation
The uWebSockets.js close callback provides (ws, code, message) but the server-side close handler discarded code and message, emitting the close event with no arguments. This breaks libraries that expect ws-compatible close events with (code, reason) parameters, such as Hocuspocus which calls reason.toString() on the close reason.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The uWebSockets.js
closecallback provides(ws, code, message)but the server-side close handler discardscodeandmessage, emitting thecloseevent with no arguments.This breaks libraries that listen for
ws-compatible close events with(code, reason)parameters. For example, Hocuspocus v3 callsreason.toString()in itshandleWebsocketClosehandler, which throwsTypeError: Cannot read properties of undefined (reading 'toString')when reason is not provided.The fix passes
codeandBuffer.from(message)through to the emitted close event, matching thewslibrary's behavior.