0

我计划开发一个远程桌面系统,包括:

  1. 可以抓取并显示屏幕的桌面应用程序
  2. 建立对等连接的服务器,为对等提供 STUN/TURN NAT 穿越技术
  3. 从浏览器运行并允许用户查看/控制远程桌面的基于 Web(Java 小程序或 Silverlight)的应用程序。

我的观点是 - 这个系统的最佳编码协议是什么?我推迟了二进制且不够的 VNC - 我需要更多的功能。NAT穿越。对于桌面和服务器,它必须使用 C++ 轻松开发,对于基于 Web 的应用程序,必须使用 Java/.NET 轻松开发。我正在考虑基于 HTTP(S) 的 XML,但我想知道如何有效地编码二进制数据,因为必须传输大量的二进制数据(捕获的桌面图像编码为 bmp/jpgs 等)。

有什么提示吗?

谢谢

4

1 回答 1

1

我认为您正在混合一些概念。VNC 实际上做了你想做的事情,它唯一缺少的就是 NAT Traversal。但是 NAT Traversal 不是任何协议的责任(据我所知)。尽管如此,在 VNC 连接开启之前,没有什么能阻止您创建 NAT 遍历。

使用 XML Over HTTP(S) 绕过防火墙只是一个巨大的矫枉过正。这种方法的主要问题是 TCP 连接不适合像视频传输这样的实时应用程序,而且 xml 数据不是二进制的!我认为使用这种方法,你的杀手级应用永远不会启动。

为什么要重新发明轮子而不使用 RTP/RTCP + Udp 打孔?关于该主题有大量(不可读的)文档,据我所知,Java Applet 可以发送/接收 UDP 数据包。您唯一需要实现的是视频/音频/事件的编码(VNC 已经做过的事情,RFB 协议!)

希望有帮助。

于 2009-07-14T15:42:56.307 回答