Web based VNC client?

ccot picture ccot · Jul 13, 2010 · Viewed 75.7k times · Source

I am currently developing a web app which has a part where i have to open a specific machine through VNC to monitor its desktop.

I am required to have a web-based VNC client, which means it shouldn't install a server or any other file on the client's side. The client just opens the web browser and puts the IP of the targeted machine to open in the browser and thus runs a web-based VNC client.

What are good resources to get started in this field?

UPDATE 2013-10-29

Just FYI: back then I ended up using guacamole as @Dolph recommended.
It was:

  • very easy to set up
  • very easy to follow its code and reverse-engineer it (as long as you know java)
  • it is still used at the company I used to work for and is robust

Answer

Dolph picture Dolph · Jul 13, 2010

Check out the Guacamole project:

Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC and RDP. We call it clientless because no plugins or client software are required. Thanks to HTML5, once Guacamole is installed on a server, all you need to access your desktops is a web browser.

On the downside, it requires a Java server to proxy through. However, this should be trivial, even if you don't already have a Java server up and running (Tomcat is pretty simple, and Guacamole's instructions are straightforward):

Guacamole is separated into two pieces: guacamole-server, which provides the guacd proxy and related libraries, and guacamole-client, which provides the client to be served by your servlet container, usually Tomcat.

guacamole-client is available in binary form, but guacamole-server must be built from source. Don't be discouraged: building the components of Guacamole from source is not as difficult as it sounds, and the build process is automated. You just need to be sure you have the necessary tools installed ahead of time. With the necessary dependencies in place, building Guacamole only takes a few minutes.