我们有一个消耗大量数据的应用程序。目前是桌面应用程序,但我们希望通过浏览器提供它。
创建一个需要传输用于可视化的所有数据的 Web 应用程序对我来说没有意义。
我们正在研究 RDP 和一些通过完全 JavaScript 客户端提供 RDP 访问的产品。它们似乎与我们的应用程序配合得很好,但我一直在考虑如何才能摆脱 Windows。
切换前端使其可以在 Linux 下运行并不是一件小事,但也不是不可能,所以主要的障碍是交付。
我想知道是否有 X11 javascript 服务器,但没有找到任何线索。
使用xpra内置的html5客户端,它支持任何可以在X11桌面上运行的应用程序。
您可以使用 HTML5 VNC 查看器(如 https://github.com/kanaka/noVNC)以及 VNC 服务器(如 RealVNC
)AFAIK,最近的 GTK 已在 Gtk Broadway
移植到 HTML5+Javascript您可以使您的应用程序成为 Web 应用程序,例如使用 Wt,或者通过专门的 HTTP 服务器库(如 libonion、libmicrohttpd 等)使其成为 HTTP 服务器。
通过使用 AJAX 技术(例如通过 jquery),您的应用程序不会立即将所有显示数据传输到浏览器(但只会增量且仅实际显示的数据)。
您还可以考虑使用 fastcgi 作为将应用程序连接到某些 Web 服务器的方式。
我认识两个,都在婴儿时期:
https://github.com/GothAck/javascript-x-server
和
https://github.com/ttaubert/x-server-js
两者都需要前面简单的 tcp-to-websockets 代理,但所有 X11 逻辑都发生在网页内部,并且所有 x11 对象都存在并在浏览器内交互(因此它不仅仅是远程帧缓冲区,而是真正的服务器)
您可以在 Web 浏览器中运行完整的 Linux 发行版,但这需要在其中运行 x86/ARM 模拟器和 GNU/Linux。它也为 X 服务器提供了可能的 Web 连接。
对于非常简单的应用程序,您可以使用 libgreattao 工具包和 tao-network-client 来连接它。我是这两个项目的作者。 API 尚未冻结,但其行为相当稳定。你可以在这里读到它: https://nintyfan.wordpress.com/2015/04/30/server-buildin-into-libgreattao-and-tao-network-client/
它可能会给具有大量数据的应用程序带来一些问题,因为所有元素在创建时都必须发送到客户端,但我们不发送完整的图形(仅发送图标)并且用户界面可以快速更改。它也不支持鼠标进入/离开/移动事件。
我必须告诉你:不要下载 tarbar,而是从 svn 下载版本。
听起来对您来说最简单的方法是获取 xrdp,它是 X 的 RDP 服务器。然后您将使用 RDP 客户端连接到它。我认为Nomachine NX现在直接支持html,但我不确定。有人谈论过 html X2go-client,但我对此一无所知。
我认为将 CX 服务器编译为 WebAssembly 是值得尝试的