浏览器需支持Websocket与Canvas
HuiiRDP+ HTML5 的客户端支持大多数主流的浏览器,例如当前的Chrome, Firefox, Opera, 同样也包括Firefox 移动版、Safari移动版、Opera 移动版及Android原生自带的浏览器。HTML 5客户端也支持传统的IE 10 ( Windows 8及Windows 7 SP1 自带,早期的Internet Explorer浏览器不是原生支持Websocket或Canvas,但是部分功能可通过Adobe Flash 来模拟实现。
备注: 如果您的浏览器访问HTML 5客户端时会显示红色的警告信息,表示您所使用的浏览器不支持Websocket或Canvas。
浏览器 | Canvas | Websocket |
---|---|---|
FireFox | Full | Full beginning by version 4 |
Chrome | Full | Full in most known versions on PC’s |
Opera | Full | Full in most newest versions |
IE6 | Flash | Flash (emulated and no proxy support) |
Flash | XHR (with proxy support) | |
IE7 | Flash | Flash (emulated and no proxy support) |
Flash | XHR (with proxy support) | |
IE8 | Flash | Flash (emulated and no proxy support) |
Flash | XHR (with proxy support) | |
IE9 | Flash | Flash (emulated and no proxy support) |
Flash | XHR (with proxy support) | |
IE10 | Full | Full |
Android native | Full | XHR |
Opera mobile | Full | Full in most newest versions |
Firefox mobile | Full | Full |
Safari mobile | Full | Full in most newest versions up iOS4, else emulated via XHR |
如果您的浏览器自动重新加载了HTTPS地址,表示您所使用的浏览器不支持Websocket transport,这在部分的Android 原生移动浏览器上会发生此类情况。这是因为浏览器会自动切换至XHR Transport,但是这个Transport层运行在长距离的HTTP协议上,它非常的慢且不稳定,所以会话便会尝试创建一个新的连接(最多每秒20个新的连接),为了避免此类不稳定的情况,会话也会切换至HTTPS的地址并强制创建HTTPS的连接。这在物理上您也可以获得持久的安全连接,并且在长距离上更加稳定。 因此,浏览器的逻辑重用已经建立的SSL连接,而不是像使用HTTP协议那样创建新的连接。
您也可以通过修改配置文件中的选项也禁止此行为Clients\www\software\html5\settings.js:
forcesslforxhr = false;
但是我们不建议您禁止在XHR模下使用SSL。
如果您在目录“C:\Program Files (x86)\HuiiRDP-Plus\Clients\www\software\html5” 下没有发现“settings.js” 配置文件,表示您当前 使用的版本过旧,请升级至最新的版本,或者联系我们的技术人员。
websockets 与 XHR 的区别是什么?
Websockets 是一个持续的连接,它可以不按照包的顺序,以及HTTP的包头来接收与发送数据
Xhr-polling 通过HTTP包头来创建连接,并且需等待对方的HTTP包头的回复,XHR的包是有先后顺序的,因此,XHR的数据流像以下的方式:
HTTP_HEADER_REQUEST -> HTTP_HEADER_ANSWER
HTTP_HEADER_REQUEST -> HTTP_HEADER_ANSWER and so on
在数据下载前,它必须发送一个 HTTP_HEADER的请求, 所以也被称为: xhr-polling.
Websockets 数据流看起来像以下方式:
FRAME_DATA_SEND
FRAME_DATA_SEND
FRAME_DATA_RECEIVE
FRAME_DATA_SEND
FRAME_DATA_RECEIVE
FRAME_DATA_RECEIVE
它看起来像是随机的发送与接收数据包,同样也无需任何的HTTP包头数据,以及按照特定的顺序来发送。
由于大多数已知的反向代理缺乏Websockets支持,这使得反向代理的使用变得不可能; 但是一半的XHR传输可以与Apache反向代理一起使用。