The websocket frames are sent in either binary or text, depending on
whether there are binary buffers encoded in the message (it is a
per-message decision, not an overall decision). The decision logic is here:
https://github.com/jupyter/notebook/blob/ca50f1af5afb525fd95b98b2e61e69db28094467/notebook/base/zmqhandlers.py#L230

I think it would be very useful to have either something that can log the
messages in the kernel, right around that logic. Another interesting change
would be to have a debug switch in the notebook server that encodes any
binary message buffers with base64 so the websocket message can still be a
text websocket frame. Another place to put the logging logic is in the
frontend, after the message has been converted back into a native js object.

Jason


On Mon, Dec 18, 2017 at 6:23 AM Christian Schafmeister <
[email protected]> wrote:

> Hello,
>
> How can I control whether the jupyter server sends binary websocket frames
> vs text websocket frames to the browser?
>
> When monitoring websocket traffic between an ipython jupyter notebook
> kernel and the browser, all websocket frames, both to the browser and from
> the browser are in websocket text frames.  This makes it easy to read the
> JSON dictionaries using almost any browser.
> When monitoring websocket traffic between our Common Lisp kernel and a
> browser, the websocket frames to the browser are binary websocket frames
> and the frames from the browser are websocket text frames.
> I recently learned that it is the jupyter notebook server (written in
> python) that is interposed between our kernel and the browser that is
> carrying out this websocket communication.  Why is it using binary frames?
> Binary websocket frames are a lot harder to dig into and extract the JSON
> from.
>
> I'd like to monitor the websocket traffic between the jupyter server and
> the browser for debugging.
> It has been extremely helpful to do this in a painful/limited way to add
> jupyter widgets support to our kernel (based on cl-jupyter/Common Lisp).
>
> Best,
>
> Christian Schafmeister
> Professor
> Chemistry Department
> Temple University
>
> --
> You received this message because you are subscribed to the Google Groups
> "Project Jupyter" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jupyter/9915a01a-5704-4671-86ce-5c33793504ee%40googlegroups.com
> <https://groups.google.com/d/msgid/jupyter/9915a01a-5704-4671-86ce-5c33793504ee%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Project Jupyter" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jupyter/CAPDWZHx0dQi0egPcJzzqmvcuqrc78tJQcnEcKKA3qjeBunh6vw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to