====== 虚机浏览器内容重定向调研 ====== ===== 功能比对 ===== ==== › 比对 ==== ^ ^ VMWare ^ Citrix ^ Sangfor ^ | HTML5 多媒体重定向 | 只支持带地址格式、或自建MediaSource视频; 不支持目前主流视频站blob源以及加密的视频 | 只支持重定向mp4格式视频;不支持目前主流视频站blob源以及加密的视频 | 功能合并到浏览器内容重定向;可能全支持 | | 浏览器内容(标签页)重定向 | 在 content 区域内置一个地址编辑与按钮来进行重定向显示 | 重定向整个标签页 | | ==== › 参考链接 ==== * https://docs.citrix.com/zh-cn/citrix-virtual-apps-desktops/multimedia/browser-content-redirection.html * https://docs.citrix.com/zh-cn/citrix-virtual-apps-desktops/policies/reference/ica-policy-settings/browser-content-redirection-policy-settings.html#browser-content-redirection-integrated-windows-authentication-support-setting * https://docs.citrix.com/zh-cn/citrix-virtual-apps-desktops/multimedia/html5-multimedia-redirection.html * https://docs.vmware.com/en/VMware-Horizon-7/7.13/horizon-remote-desktop-features/GUID-6A68ECA4-6B9C-43C5-B437-D39B71005BAD.html * {{ :public:it:spice:webpageredirecthelp.pdf |}} ===== 架构 ===== ==== › 浏览器内容重定向通用原理架构 ==== === ›› 示意图 === {{ :public:it:spice:通用浏览器内容重定向拓扑.png |}} === ›› 优点 === * 结构简单,实现容易。 * 保留浏览器对标签页url的收藏、历史记录等功能。 === ›› 缺点 === * 客户端网络与虚拟机网络不同。解决方法:客户端webview 使用虚拟机同等网络代理。 * 客户端webview 的网页用户认证等cookie内容保留在客户端。最好能确保用户登录与认证的地址都被重定向。(citrix 也可使用基于 windows 域管理的单点登录。) * Android webview 与 Windows chrome 的行为有些不同, 比如 webview 没有右键菜单。 ==== › 猜测的Sangfor浏览器内容重定向架构 ==== === ›› 示意图 === {{ :public:it:spice:sangfor浏览器内容重定向拓扑v1.0.2.png |}} === ›› 优点 === * 保留浏览器对标签页url的收藏、历史记录等功能。 * 页面内容及视频数据的获取是在虚拟机端而不是客户端,不用考虑客户端网络与虚拟机网络的不同。 * 网页用户认证等cookie内容保留在虚拟机端。 * 自制浏览器可以在解码层(VideoDecoder)截取视频未解码帧数据,可绕过数据源获取与EME阶段,规避各个视频站的加密机制与防下载机制导致的问题。 * 自制浏览器在虚拟机后台运行,并不直接给用户呈现,不影响用户安装升级最新chrome浏览器,或 edge 浏览器。 * 猜测:也可只进行video视频重定向(但配置上没有此选项)。 === ›› 缺点 === * 结构与交互复杂,需自制chrome浏览器在解码层截获视频帧源数据,并要考虑解码同步问题,实现有一定难度。 * 相比通用架构,虽然少了客户端加载url的流量,但多了虚拟机加载网络数据的流量、以及虚拟机往客户端传输页面内容与视频数据的流量。 * 相比通用架构,叠加在视频画面上的弹幕将显示不了。 * Android webview 与 Windows chrome 的行为有些不同, 比如 webview 没有右键菜单。