Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| projects:osmiumvm:challenges:websocket-communication [2020-08-12 03:49] – ↷ Page moved from projects:virtualization-platform:challenges:websocket-communication to projects:osmiumvm:challenges:websocket-communication nkukard | projects:osmiumvm:challenges:websocket-communication [2025-12-23 12:42] (current) – removed nkukard | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Websocket Communication ====== | ||
| - | ===== Goals ===== | ||
| - | |||
| - | We want our virtualization platform to use noVNC web-based consoles and have support for serial communication. | ||
| - | |||
| - | We'll be doing this using Qemu VNC UNIX websockets. It may be easier to try with a normal IP-based socket first, then convert your code to use UNIX sockets. | ||
| - | |||
| - | There is probably two ways this can be implemented, | ||
| - | |||
| - | I'd prefer we handle all communication in the same flask app than use a proxy process that requires an additional port to be opened. This way authentication would be easier and contained in the same app? | ||
| - | |||
| - | ===== POC Process ===== | ||
| - | |||
| - | * Flask app to forward websock communication from VM to browser window | ||
| - | * noVNC | ||
| - | * Get basic forwarding of websock communication working with noVNC | ||
| - | * Opening multiple browser windows must work | ||
| - | * serial console | ||
| - | * Get basic forwarding of websock communication working with xtermjs | ||
| - | * Opening multiple browser window must work | ||
| - | * Add very basic test:test authentication | ||
| - | * Protect endpoint | ||
| - | |||
| - | ===== Useful Links ===== | ||
| - | |||
| - | * https:// | ||
| - | * https:// | ||
| - | * https:// | ||
| - | * https:// | ||
| - | * https:// | ||
| - | * Socket authentication https:// | ||
| - | * https:// | ||
| - | * https:// | ||
| - | |||
| - | ===== Testing ===== | ||
| - | |||
| - | Basic noVNC testing with an IP-based socket... | ||
| - | < | ||
| - | qemu-system-x86_64 -m 512 --enable-kvm -vnc : | ||
| - | python -m http.server | ||
| - | http:// | ||
| - | </ | ||
| - | |||
| - | We however need the above to work with UNIX sockets... | ||
| - | < | ||
| - | qemu-system-x86_64 -m 512 --enable-kvm -vnc / | ||
| - | </ | ||
| - | |||
| - | For serial... | ||
| - | < | ||
| - | -chardev socket, | ||
| - | </ | ||