Сервер HTML5/javascript X11?

У нас есть приложение, которое потребляет большой объем данных. В настоящее время настольное приложение, но мы хотели бы доставить его через браузер.

Для меня нет смысла создавать веб-приложение, где нам нужно передать данные, используемые для визуализации.

Мы смотрим на RDP и некоторые продукты, которые обеспечивают доступ RDP через полностью javascript-клиент. Они, похоже, хорошо работают с нашим приложением, но я думал о том, что потребуется для выхода из Windows.

Переключение переднего конца, чтобы он мог работать под Linux, не было бы тривиальным, но не невозможным, поэтому основным камнем преткновения будет доставка.

Мне было интересно, есть ли там X11-серверы javascript, но не нашли никаких ссылок.

Ответ 1

AFAIK, последний GTK был перенесен на HTML5 + Javascript в Gtk Broadway

И вы можете сделать свое приложение веб-приложением, например, с помощью Wt, или путем создания HTTP-сервера через специализированные библиотеки HTTP-сервера, такие как libonion, libmicrohttpd и т.д.

Используя методы AJAX (например, через jquery), ваше приложение не будет передавать все отображаемые данные в браузер сразу (но только поэтапно и только фактические данные).

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

Ответ 2

Вы можете использовать просмотрщик VNC HTML5, например https://github.com/kanaka/noVNC, в сочетании с сервером VNC, например RealVNC

Ответ 3

Я знаю два, оба в очень раннем возрасте:

https://github.com/GothAck/javascript-x-server

а также

https://github.com/ttaubert/x-server-js

Оба требуют простой прокси-сервер tcp-to-websockets впереди, но вся логика X11 происходит внутри веб-страницы, и все объекты x11 существуют и взаимодействуют в браузере (так что это не просто удаленный фреймбуфер, а реальный сервер)

Ответ 4

Для очень простых приложений вы можете использовать libgreattao toolkit и tao-network-client для подключения к нему. Я автор обоих проектов. API еще не заморожен, но он довольно стабилен. Вы можете прочитать об этом здесь: https://nintyfan.wordpress.com/2015/04/30/server-buildin-into-libgreattao-and-tao-network-client/

Он может обеспечить некоторые проблемы с приложениями с большим количеством данных, поскольку все элементы должны быть отправлены клиенту, когда он был создан, но вместо этого мы не отправляем полную графику (только значки отправляются), и пользовательский интерфейс может быть быстро изменен. Он также не поддерживает события ввода/отпуска мыши/перемещения.

Должен сказать: не загружать tarbar, а загружать версию из svn.

Ответ 5

Похоже, что самый простой подход для вас - получить xrdp, который является RDP-сервером для X. Затем вы будете использовать свой RDP-клиент для подключения к нему. Я думаю, что Nomachine NX поддерживает html прямо сейчас, но я не уверен. Были разговоры о html X2go-клиенте, но я ничего об этом не знаю.

Ответ 6

Используйте клиент xpra builtin html5, он поддерживает любое приложение, которое вы можете запускать на рабочем столе X11.