用于web< - >基于桌面的应用程序的数据编码的协议

时间:2009-07-14 15:03:44

标签: http desktop protocols vnc nat

我打算开发一个包含以下内容的远程桌面系统:

  1. 可以抓取并显示屏幕的桌面应用程序
  2. 建立对等连接的服务器,为peer
  3. 提供STUN / TURN NAT遍历技术
  4. 从浏览器运行的基于Web(Java applet或Silverlight)应用程序,允许用户查看/控制远程桌面。
  5. 我的观点是 - 这个系统最好的编码协议是什么?我推迟了VNC这是二进制而且还不够 - 我需要更多的功能。 NAT遍历。必须在C ++中为桌面和服务器以及在Java / .NET中为基于Web的应用程序轻松开发。我正在考虑基于HTTP的XML(S),但我想知道如何有效地编码二进制数据,因为必须传输大量的二进制数据(捕获的桌面图像编码为bmp / jpgs等)。

    任何提示?

    由于

1 个答案:

答案 0 :(得分:1)

我认为你正在混合一些概念。 VNC实际上你正在尝试做什么,而它唯一缺少的是NAT Traversal。但NAT Traversal不是任何协议的责任(据我所知)。毫无疑问,在VNC连接开启之前,没有什么能阻止你创建NAT Traversal。

使用XML over HTTP(S)绕过防火墙只是一个巨大的过度杀伤力。这种方法的主要问题是TCP连接不适合视频传输等实时应用,而xml数据不是二进制!我认为使用这种方法,您的杀手级应用永远不会启动。

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

希望有所帮助。