views:

131

answers:

5

i am currently developing a web app which has a part where i have to open a specific machine through VNC to see 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 so run a web based VNC client.

but till now i have no luck in finding such an app or script, any help or suggestions plz would be much appreciated :)

+1  A: 

Check out the Guacamole project:

Guacamole is an HTML5 + JavaScript (AJAX) viewer for VNC, which makes use of a server-side proxy written in Java. The current version is almost as responsive as native VNC and should work in any browser supporting the HTML5 canvas tag.

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 provides access to your VNC server through a proxy written in Java. The server-side half of Guacamole thus requres a servlet container like Apache Tomcat, while the client-side requires nothing more than a web browser supporting HTML5 and AJAX.

Dolph
thx a lot, i wanted to use guacamole actually but the java proxy was the problem because my company doesn't have it on their server and my boss isn't favoring installing its requirements like tomcat...Do you think their is like an add on or sthg to make it work on a server without a servlet container?
Chadic
A: 

Try tightVNC.com. The last time i used it you could just point it at the IP of the machine and use it in your browser.

Rob
TightVNC's solution requires that the **server** be running TightVNC. The TightVNC server has an option to allow incoming web requests, for which it responds with an applet to VNC back to itself. In other words, the "client" cannot be used to connect to arbitrary VNC servers. http://www.tightvnc.com/winst.php#start_java
Dolph
A: 

In addition to Dolph's answer, there is this, a Java applet for connecting to VNC servers.

Jason Miesionczek
A: 

ThinVNC is another pure web alternative that uses HTML5 to replace the old VNC.

ThinVNC is composed of a pure HTML5 based client connecting via HTTP/s to a server. The web client connects to the listening port and displays the desktop using JSON and JPEG image encoding. The communication is authenticated using Digest method and the connection can be made through HTTP or HTTPS.

ThinVNC

:)

CybelMar
A: 

There are various solutions, but none of them will allow a 100% plain web app (i.e. no Flash, Java or ActiveX) to connect directly to a 100% plain VNC server. The biggest issue is that web browsers cannot make plain TCP connections. The closest thing is the incomplete WebSockets standard, but even that is a framed protocol that has a HTTP-like handshake to initiate it.

Even though Adobe Flash programs can make plain TCP connections, they still require that the server you are connecting to answer with a policy file either on port 843 or the port you are connecting to (http://code.google.com/p/doctype/wiki/ArticleFlashSecurity).

As has been noted, Guacamole requires a Java proxy to communicate between their HTML5 based interface and the VNC server.

Another option is noVNC ( http://novnc.com ) which has a full VNC client implementation in Javascript/HTML5 (unlike Guacamole where the VNC protocol is in the proxy). However, noVNC is still limited by the fact that Javascript cannot make plain TCP connections. noVNC uses WebSockets to connect to the server. noVNC includes a generic WebSockets to TCP proxy (a python and C version) that you can run on the server (or the client for that matter) and it has no extra dependencies to install.

kanaka