-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document a high level technical overview on how this project work #100
Comments
websockify also intercepts the VNCserver's TCP socket bind request (e.g. to 5901), transparently changes the internal library call so that the VNCserver binds to |
Ah, but we can't make use of that right? We need to specify it so that jsp proxies to what websockify exposes right? I errored without #99 in turbovnc listening to a random TCP port |
Hi @consideRatio, Here are the questions I need clarification on:
|
I think all projects benefit greatly from a technical overview as that allows anyone to better onboard and for example debug issues or contribute to maintenance in various ways.
Here are some notes that I've distilled from learning how this project works in order to help me debug and maintain things in this project. They should absolutely be refined further, but this is similar to the level of overview I think we should provide in the README, for example under a "How it works" heading like for jupyterhub-idle-culler.
jupyter_server_proxy server entrypoints
/desktop-websockify/
Requests here are listened to by websockify. It terminates websocket traffic and proxies data to a VNC server.
setup_websockify
returns a command to startwebsockify
, that in turn wraps startup of a vncserver, that in turn wraps startup of a desktop session via a passedxstartup
script. Whenwebsockify
wraps the startup of a vncserver, it intercepts the socket bind request to hijack listening on that port, and instead lets the vncserver listen to some other port it then will forward traffic to.The purpose of
websockify
is to bridge websocket traffic into a normal socket traffic.The associated JupyterLab launcher entry redirects users to /desktop/, which in turn provides an index.html referencing a viewer.js that interacts via websockets with /desktop-websockify/.
The way jupyter-server-proxy proxies communication can be either via a unix socket or via a TCP port. Only TigerVNC supports listening to unix sockets though.
bundled file
to be referenced when launching the VNC server. ~/.vnc/xstartup can be
provided as an alternative
jupyter_server extension
The text was updated successfully, but these errors were encountered: