2011-02-14 75 views
1

如何在.net应用程序中集成NoVNC以进行远程访问?.net应用程序中的NoVNC集成

+0

我的回答有帮助吗?如果不是,你能澄清你的问题:你更具体地寻找什么? – kanaka 2011-02-22 15:12:47

回答

3

这取决于您是要将noVNC客户端集成到.net应用程序还是希望noVNC能够连接到.net应用程序以查看它。我不知道为什么你会想要做前者,因为有更有效的方式将VNC客户端添加到.net应用程序。所以我会回答第二个选项(使用noVNC连接到.net应用程序)。

noVNC是VNC客户端;它实现了RFB/VNC protocol的客户端部分。 noVNC连接的服务器必须实现RFB/VNC协议的服务器部分。最简单的选择是运行一个单独的VNC服务器,该服务器可以为单个窗口服务(应用程序可以在其控制下启动VNC服务器)。否则,你必须实现所有的应用程序本身的VNC/RFB语义:

  • VNC认证
  • 编码谈判
  • 跟踪应用程序的可视状态随着时间的推移
  • 做客户端的东西鼠标状态和键盘状态信息
  • 通过计算自上次客户端请求该区域以来发生更改的请求区域内的矩形来回答客户端FBU(帧缓冲区更新)请求。将这些矩形编组为由客户端和服务器支持的最佳编码。

另外一个Web浏览器无法启动原始TCP套接字连接,只有WebSocket连接。除了WebSockets握手和组帧之外,WebSockets目前只允许使用UTF-8编码的有效载荷。为了解决这些限制,noVNC使用websockify在原始TCP套接字和WebSocket之间进行转换。为了解决WebSocket UTF-8的限制,websockify base64对浏览器的所有流量进行编码/解码。 websockify的功能可以与VNC服务器功能一起实施。实际上,this fork of libvncserver具有WebSockets(和base64编码)支持内置(即noVNC可以直接连接到它没有websockify)。

如果您仍想尝试在.net应用程序中实现VNC/RFB和WebSockets支持,那么您可以使用this C# code作为WebSockets功能的参考。

相关问题