さまざまなソリューションがありますが、100% プレーンな Web アプリ (つまり、Flash、Java、ActiveX がない) が 100% プレーンな VNC サーバーに直接接続できるものはありません。最大の問題は、Web ブラウザーが単純な TCP 接続を確立できないことです。最も近いのは不完全な WebSockets 標準ですが、それでもそれを開始するために HTTP のようなハンドシェイクを持つフレーム化されたプロトコルです。
Adobe Flash プログラムは単純な TCP 接続を確立できますが、接続しているサーバーがポート 843 または接続先のポート ( http://code.google.com/p/ doctype/wiki/ArticleFlashSecurity )。
前述のように、Guacamole は、HTML5 ベースのインターフェースと VNC サーバーの間で通信するために Java プロキシを必要とします。
別のオプションはnoVNC ( github ) で、これは Javascript/HTML5 で完全な VNC クライアントを実装しています (VNC プロトコルがプロキシにある Guacamole とは異なります)。ただし、noVNC は、Javascript が単純な TCP 接続を確立できないという事実によってまだ制限されています。noVNC は WebSocket を使用してサーバーに接続します。noVNC には、サーバー (またはクライアント) で実行できる一般的な WebSockets to TCP ブリッジが含まれており、インストールする追加の依存関係はありません。
更新: QEMU、PocketVNC、および LibVNCServer から派生したプロジェクトには、WebSocket サーバーのサポートが組み込まれているため、noVNC との接続に websockify ブリッジは必要ありません。また、免責事項として、noVNC を作成したことに注意するのを忘れていました。