gpt4 book ai didi

javascript - .net 应用程序中的 NoVNC 集成

转载 作者:行者123 更新时间:2023-11-30 13:35:42 24 4
gpt4 key购买 nike

如何将NoVNC集成到.net应用程序中进行远程访问?

最佳答案

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

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

  • VNC 身份验证
  • 编码协商
  • 随着时间的推移跟踪应用程序的视觉状态
  • 对客户端鼠标状态和键盘状态信息做一些事情
  • 通过计算自上次客户端请求该区域以来已更改的请求区域内的矩形来响应客户端 FBU(帧缓冲区更新)请求。将这些矩形编码为客户端和服务器都支持的最佳编码。
  • 等等

Web 浏览器也无法启动原始 TCP 套接字连接,只能启动 WebSocket 连接。除了 WebSockets 握手和框架之外,WebSockets 当前仅允许 UTF-8 编码的有效负载。为了绕过这些限制,noVNC 使用 websockify在原始 TCP 套接字和 WebSocket 之间进行转换。为了绕过 WebSockets UTF-8 限制,websockify base64 编码/解码所有进出浏览器的流量。 websockify 的功能可以与 VNC 服务器功能一起实现。事实上,this fork of libvncserver具有内置的 WebSockets(和 base64 编码)支持(即 noVNC 可以直接连接到它而无需 websockify)。

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

关于javascript - .net 应用程序中的 NoVNC 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4989724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com