Read websocket frame until completed #555
Open
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.
Problem
I was trying out emacs-jupyter to connect to Paperspace Gradient using their token authenticated remote kernel. I noticed that some code executions didn't output anything (e.g.
.describe()
).Solution
It turns out that the current
:on-message
handler doesn't properly handle partial messages. Ifwebsocket-frame-completep
returnsnil
we should wait for the next frame and accumulate the message.We also add
continuation
websocket-frame-opcode
as a valid string response. I'm not sure what impact this will have sincecontinuation
isn't actually a type liketext
orbinary
Note
For those interested in connecting to Paperspace Gradient; you have to connect WITHOUT using a port. AFAIK emacs-jupyter won't let you set the
port
tonil
in org, so you have to manually overridejupyter-tramp-url-from-file-name
and setport
tonil
jupyter/jupyter-tramp.el
Lines 282 to 289 in f97f4b5