2010-07-13 2 views
31

В настоящее время я разрабатываю веб-приложение, в котором есть часть, где я должен открыть конкретную машину через VNC для мониторинга своего рабочего стола.
Веб-клиент VNC?

У меня должен быть веб-клиент VNC, что означает, что он не должен устанавливать сервер или какой-либо другой файл со стороны клиента. Клиент просто открывает веб-браузер и помещает IP-адрес целевой машины в браузер и, таким образом, запускает веб-клиент VNC.

Какие у вас хорошие ресурсы для начала работы в этой области?

UPDATE 2013-10-29

Просто FYI: тогда я закончил с использованием guacamole в соответствии с рекомендациями @Dolph.
Это было:

  • очень легко настроить
  • очень легко следовать его кода и перепроектировать его (до тех пор, как вы знаете, Java)
  • он все еще используется в компании, я использовал работать и надежен

ответ

23

Отъезд Guacamole project:

гуакамоле является клиентский удаленный настольный шлюз. Он поддерживает стандартные протоколы, такие как VNC и RDP. Мы называем это clientless, потому что нет плагинов или клиентского программного обеспечения. Благодаря HTML5, когда Guacamole установлен на сервере, все, что вам нужно для доступа к вашим настольным компьютерам, - это веб-браузер.

С другой стороны, для прокси-сервера требуется сервер Java. Однако, это должно быть тривиальной, даже если вы уже не имеете сервер и работает на Java (Tomcat очень проста, и Guacamole's instructions просты):

гуакамоле разделяется на две части: гуакамоле-сервер, который предоставляет прокси-сервер guacd и связанные с ним библиотеки, и guacamole-client, который обеспечивает клиенту обслуживание вашего контейнера сервлета, обычно Tomcat.

guacamole-client доступен в двоичной форме, но guacamole-сервер должен быть построен из источника. Не обескураживайте: создание компонентов Guacamole из источника не так сложно, как кажется, и процесс сборки автоматизирован. Вам просто нужно быть уверенным, что у вас есть необходимые инструменты, установленные раньше времени. При наличии необходимых зависимостей строительство Гуакамоле займет всего несколько минут.

+0

ТНХ много, я хотел бы использовать гуакамол на самом деле, но ява прокси была проблемой, потому что моя компания не имеет его на своем сервере, и мой босс не одобряя устанавливать свои требования, как мартовский кот .. Считаете ли вы, что они похожи на добавление или sthg, чтобы заставить его работать на сервере без контейнера сервлетов? – shadesco

+0

I второй Dolph's «должен быть тривиальным» - я довольно не разбираюсь в Java, но нашел его очень легко настроить. – offby1

4

Try tightVNC.com. В последний раз, когда я использовал его, вы могли просто указать его на IP-адрес машины и использовать его в своем браузере.

+6

Решение TightVNC требует, чтобы ** сервер ** запускал TightVNC. Сервер TightVNC имеет возможность разрешать входящие веб-запросы, для которых он отвечает апплетом на VNC обратно к себе. Другими словами, «клиент» не может использоваться для подключения к произвольным серверам VNC. http://www.tightvnc.com/winst.php#start_java – Dolph

0

В дополнение к ответу Дольфа есть this, Java-апплет для подключения к серверам VNC.

14

Существуют различные решения, но ни один из них не позволит использовать 100% -ное обычное веб-приложение (то есть без Flash, Java или ActiveX) для прямого подключения к 100% -ному VNC-серверу. Самая большая проблема заключается в том, что веб-браузеры не могут выполнять простые TCP-соединения.Самое близкое - это неполный стандарт WebSockets, но даже это протокол с фреймами, который имеет HTTP-подобный рукопожатие, чтобы инициировать его.

Несмотря на то, что программы Adobe Flash могут выполнять простые TCP-соединения, им по-прежнему требуется, чтобы сервер, к которому вы подключаетесь, отвечает с файлом политики либо на порт 843, либо на порт, к которому вы подключаетесь (http://code.google.com/p/doctype/wiki/ArticleFlashSecurity).

Как уже отмечалось, Guacamole требует прокси-сервера Java для связи между их интерфейсом на основе HTML5 и сервером VNC.

Другой вариант: noVNC (github), который имеет полную реализацию клиента VNC в Javascript/HTML5 (в отличие от Guacamole, где протокол VNC находится в прокси). Тем не менее, noVNC по-прежнему ограничен тем, что Javascript не может выполнять простые TCP-соединения. noVNC использует WebSockets для подключения к серверу. noVNC включает в себя общие WebSockets для TCP-моста, которые можно запускать на сервере (или на самом деле клиент), и у него нет дополнительных зависимостей для установки.

Update: QEMU, PocketVNC и проекты, полученные из LibVNCServer теперь встроена поддержка WebSocket сервер так websockify мост не требуется, чтобы соединиться с noVNC. Кроме того, я забыл отметить как отказ от ответственности, что я создал noVNC.

1

Возможно, вы подойдете к этому решению - http://www.onlinevnc.com? Насколько я вижу, они решили проблему для Flash Security, когда Flash не может установить прямое подключение к порту TCP/IP VNC. Также я увидел на их сайте предложение интегрировать просмотрщик на любом другом веб-сайте или в приложении.

+0

Пробовал, не работает. OSX, с радостью подключенный с помощью клиента desktop/android). Вспышка. – tutejszy