Websockets are stateful and proxying multiple websockets can prove tricky. I started investigating the use of a dynamically configured reverse-proxy (think Nginx/Traefik) to avoid implementing this ourself. The main tricky part is to monitor when a connection is closed in order to stop the on-demand VM after a timeout. If found some tools that may achieve this, but this needs more work.
Citing @hoh: