HTML5 / javascript X11服务器是什么?

21
我们有一个需要消耗大量数据的应用程序,目前是桌面应用程序,但我们想通过浏览器进行传递。创建一个需要传输可视化所需的所有数据的Web应用程序对我来说没有意义。
我们正在查看 RDP 和一些产品,这些产品通过全 JavaScript 客户端提供 RDP 访问。它们似乎与我们的应用程序很好地配合使用,但我一直在考虑从 Windows 转移的方法。将前端切换为可以在 Linux 下运行并不容易,但也不是不可能,因此主要难点是交付。我想知道是否有任何 X11 JavaScript 服务器,但没有发现任何线索。

你的桌面应用程序是使用哪个工具包编写的(Qt、GTK还是其他什么)? - Basile Starynkevitch
1
现在它是一个使用WTL编写的Windows应用程序,但我们不排斥使用Qt或GTK进行重写。这会有什么区别吗? - bpeikes
@bpeikes 你最终使用了什么?我也想通过JS在浏览器中交付单个应用程序。 - Chandan
7个回答

13

请勿使用缺少html5客户端的Debian和Ubuntu软件包,而是使用官方的xpra.org软件包。 - totaam
2
据我所了解,xpra的HTML5客户端并没有实现X11,而只实现了xpra协议。因此,您还需要在另一侧运行xpra服务器组件。 - uli42

5

2
VNC的问题在于据我所知它是基于桌面的。我们正在寻找更像RDP远程应用程序或X11的东西,它允许在浏览器中显示单个应用程序。 - bpeikes

4
据我所知,最近的GTK已经被移植到了HTML5+Javascript中,可以在Gtk Broadway中使用。
你可以通过使用Wt或者通过使用专门的HTTP服务器库(如libonionlibmicrohttpd等)将你的应用程序变成一个Web应用程序。
通过使用AJAX技术(例如通过jquery),你的应用程序不会一次性向浏览器传输所有显示数据(而只是逐步地传输实际显示的数据)。
你还可以考虑使用fastcgi来将你的应用程序连接到某个Web服务器。

1
看了一下GTK,感觉很有趣,但似乎不够稳定,也不像是企业解决方案的选择。 我不确定Wt、libonion或libmicrohttpd怎么回答我的问题。我不想将我的应用程序作为Web服务器运行。 - bpeikes
1
GTK本身用于Gnome。我很惊讶你认为它不够稳定。许多Linux桌面都是基于GTK的! - Basile Starynkevitch
2
我并不是说GTK不稳定。Broadway中的HTML5支持相当新。它也没有一个通过Web启动应用程序或将多个实例作为单个服务器运行的框架(据我所知)。 - bpeikes
1
https://developer.gnome.org/gtk3/stable/gtk-broadway.html有关于如何实现的说明。基本上,需要设置一个起始页面来查询您的服务器,然后服务器确定下一个可用端口,运行命令并将客户端重定向到相应的端口(每个网络设备可以托管超过50k个客户端)。 - technosaurus

3

1
这两个都没有被处理过。我正在寻找一个在生产环境中使用的产品或开源项目。 - bpeikes
2
刚刚检查了一下,这两个似乎都被放弃了:javascript-x-server 最后更新于2年前,x-server-js则是4年前 :-( - András Aszódi

1
你可以在Web浏览器中运行完整的Linux发行版,但这需要在其中运行x86/ARM模拟器和GNU/Linux。它还提供了带有可能的Web连接的X服务器。

0

对于非常简单的应用程序,您可以使用libgreattao工具包和tao-network-client进行连接。我是这两个项目的作者。API尚未冻结,但它表现得相当稳定。您可以在此处阅读有关它的信息: https://nintyfan.wordpress.com/2015/04/30/server-buildin-into-libgreattao-and-tao-network-client/

对于具有大量数据的应用程序,它可能会提供一些问题,因为所有元素都必须在创建时发送到客户端,但我们不会发送完整的图形(仅发送图标),并且用户界面可能会快速更改。它还不支持鼠标进入/离开/移动事件。

我必须告诉您:不要下载tarbar,而是从svn下载版本。


0

听起来对你来说最简单的方法就是获取xrdp,这是针对X的RDP服务器。然后,你可以使用你的RDP客户端连接到它。我认为Nomachine NX现在直接支持HTML,但我不确定。有谈论过一个HTML X2go客户端,但我对此一无所知。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接