xterm.js webclient and helper utility ===================================== This repository contains the client and helper utility to use xterm.js [0] in the web UI of Proxmox projects like Proxmox VE, Proxmox Mail Gateway or Proxmox Backup Server. [0]: https://xtermjs.org To be able to relay between the frontend and a shell program/console running in the backend, we provide a tool called termproxy to open a port (where our websocketproxy connects to) and to open a PTY and execute a program. For communication originating from the client towards the server, it implements a simple packet-based protocol where everything is a string. The protocol consists of the following messages: * Normal Message 0:LENGTH:MSG where LENGTH is the bytelength of the msg * Resize Message 1:COLS:ROWS: where COLS is the number of columns the client wants to resize to, and ROWS the number of rows, respectively * Ping Message 2 used to keep the connection between client and server alive (we have a timeout of 5 minutes) Every other input from the client will be ignored. Communication from server to the client uses no protocol, the raw data coming from the terminal/program will be forwarded 1:1, without any wrapping format.