]>
Commit | Line | Data |
---|---|---|
1 | xterm.js webclient and helper utility | |
2 | ===================================== | |
3 | ||
4 | This repository contains the client and helper utility to use xterm.js [0] in | |
5 | the web UI of Proxmox projects like Proxmox VE, Proxmox Mail Gateway or Proxmox | |
6 | Backup Server. | |
7 | ||
8 | [0]: https://xtermjs.org | |
9 | ||
10 | To be able to relay between the frontend and a shell program/console running in | |
11 | the backend, we provide a tool called termproxy to open a port (where our | |
12 | websocketproxy connects to) and to open a PTY and execute a program. | |
13 | ||
14 | For communication originating from the client towards the server, it implements | |
15 | a simple packet-based protocol where everything is a string. The protocol | |
16 | consists of the following messages: | |
17 | ||
18 | * Normal Message | |
19 | 0:LENGTH:MSG | |
20 | where LENGTH is the bytelength of the msg | |
21 | ||
22 | * Resize Message | |
23 | 1:COLS:ROWS: | |
24 | where COLS is the number of columns the client wants to resize to, and ROWS | |
25 | the number of rows, respectively | |
26 | ||
27 | * Ping Message | |
28 | 2 | |
29 | used to keep the connection between client and server alive | |
30 | (we have a timeout of 5 minutes) | |
31 | ||
32 | Every other input from the client will be ignored. | |
33 | ||
34 | Communication from server to the client uses no protocol, the raw data coming | |
35 | from the terminal/program will be forwarded 1:1, without any wrapping format. |