websockify

WebSockets support for any application/server - Python 3

Install

All systems
curl cmd.cat/websockify.sh
Debian Debian
apt-get install websockify
Ubuntu
apt-get install websockify
image/svg+xml Kali Linux
apt-get install websockify
Fedora
dnf install python3-websockify
Windows (WSL2)
sudo apt-get update sudo apt-get install websockify
Raspbian
apt-get install websockify

python3-websockify

WebSockets support for any application/server - Python 3

websockify was formerly named wsproxy and was part of the noVNC project. At the most basic level, websockify just translates WebSockets traffic to normal socket traffic. Websockify accepts the WebSockets handshake, parses it, and then begins forwarding traffic between the client and the target in both directions. Websockify supports all versions of the WebSockets protocol (Hixie and HyBi). The older Hixie versions of the protocol only support UTF-8 text payloads. In order to transport binary data over UTF-8 an encoding must used to encapsulate the data within UTF-8. With Hixie clients, Websockify uses base64 to encode all traffic to and from the client. This does not affect the data between websockify and the server. With HyBi clients, websockify negotiates whether to base64 encode traffic to and from the client via the subprotocol header (Sec-WebSocket-Protocol). The valid subprotocol values are 'binary' and 'base64' and if the client sends both then the server (the Python implementation) will prefer 'binary'. The 'binary' subprotocol indicates that the data will be sent raw using binary WebSocket frames. Some HyBi clients (such as the Flash fallback and older Chrome and iOS versions) do not support binary data which is why the negotiation is necessary. This package provides the Python 3 module.

websockify

WebSockets support for any application/server

websockify was formerly named wsproxy and was part of the noVNC project. At the most basic level, websockify just translates WebSockets traffic to normal socket traffic. Websockify accepts the WebSockets handshake, parses it, and then begins forwarding traffic between the client and the target in both directions. Websockify supports all versions of the WebSockets protocol (Hixie and HyBi). The older Hixie versions of the protocol only support UTF-8 text payloads. In order to transport binary data over UTF-8 an encoding must used to encapsulate the data within UTF-8. With Hixie clients, Websockify uses base64 to encode all traffic to and from the client. This does not affect the data between websockify and the server. With HyBi clients, websockify negotiates whether to base64 encode traffic to and from the client via the subprotocol header (Sec-WebSocket-Protocol). The valid subprotocol values are 'binary' and 'base64' and if the client sends both then the server (the Python implementation) will prefer 'binary'. The 'binary' subprotocol indicates that the data will be sent raw using binary WebSocket frames. Some HyBi clients (such as the Flash fallback and older Chrome and iOS versions) do not support binary data which is why the negotiation is necessary.

novnc

HTML5 VNC client - daemon and programs

noVNC is a HTML5 VNC (WebSockets, Canvas) with encryption (wss://) support client that runs well in any modern browser including mobile browsers (iPhone/iPad and Android). More than 16 companies/projects have integrated noVNC into their products including Ganeti Web Manager, OpenStack, and OpenNebula. This package contains the daemon and programs.