Spice has a prototype Web client which runs entirely within a modern browser. It is limited in function, a bit slow, and lacks support for many features of Spice (audio, video, agents just to name a few).
A complete TODO list is kept in the source code.
However, it is surprisingly functional, and certainly a useful proof of concept.
The browser must support binary WebSockets as well as the binaryType of arraybuffer. As of June, 2012, Firefox 12 and Chrome >= 18 both provided the required features.
Currently, you must also use a WebSocket proxy, as Spice has no built in support for the WebSocket protocol. websockify works great.
You must, of course, also have a Spice server of some kind. It has been tested primarily against Xspice, but it also works with qemu. However, it works better with linux guests than with Windows guests.
To Try It
The following steps should enable you to use the HTML5 Client:
- (optional) Obtain the spice-html5 client. See the git page for more details. Alternately, you can use the version hosted on the spice web server for testing (see step 5, below).
- Start your spice server. This is left as an exercise for the reader. For the purposes of this set of instructions, we imagine it is running on your localhost at port 5900.
- Obtain websockify
git clone https://github.com/kanaka/websockify.git
- Start websockify (we arbitrarily pick port 5959 to use as the relay port)
websockify/websockify.py 5959 localhost:5900
- Point your browser to spice.html and try it! Either point to your local spice.html, or use our copy of spice.html.
Be sure to give the hostname where websockify is running and the port number you provided when starting websockify.