Browsers supporting Websocket and Canvas

The RDPlus HTML5 client is supported by most modern web browsers, including current versions of Chome, Firefox, Opera, as well as Firefox mobile, Safari mobile, Opera mobile and the Android native browser. The HTML5 client is also supported natively in IE10 (released with Windows 8 and Windows 7 SP1). Earlier versions of Internet Explorer do not natively support Websocket or Canvas, but these features are emulated using Adobe Flash.

NB: If your browser shows red warning on start by using HTML5 client, this means that your browser does not support Websocket or Canvas.

Browsers 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

If your browser automatically reloads the pages to HTTPS address

This means that Websockets transport is not supported. This is the case on several Android native mobile browsers.
It is due to the fact that the browser automatically switches to XHR transport.

But because this transport layers on long distances with HTTP protocol, each request creates new connection. It is very slow and unstable to create new connections (up to 20 new connections per second), therefore to avoid this instability the program is conceived so that the page reloads automatically to HTTPS address to enforce HTTPS connection.

Physically you also get mostly persistent secured connection and much more stable on long distances. So the logic of browser reuses already established SSL connection instead of creating a new connection like by the use of HTTP protocol.

This behavior can be changed by the following option inside Clients\www\software\html5\settings.js:

forcesslforxhr = false;

But it is absolutely not recommended to disable the use of SSL in XHR mode.

If you do not have a file named “settings.js” in the “C:\Program Files (x86)\RDPLUS\Clients\www\software\html5” folder, then your TSplus version is older and this documentation does not apply. Please update your system first or contact support.

What is the difference between websockets and XHR?

Websockets is the persistent connection that can be used to receive/send data without sequential order and without HTTP header.

Xhr-polling creates new request with http header and waits for answer with http header, also sequential order.

Doing so, XHR data flow always looks like this:

HTTP_HEADER_REQUEST -> HTTP_HEADER_ANSWER

HTTP_HEADER_REQUEST -> HTTP_HEADER_ANSWER and so on

also before the data can be downloaded, it must be requested with HTTP_HEADER, therefore its name: xhr-polling.

Websockets data flow may look like this:

FRAME_DATA_SEND

FRAME_DATA_SEND

FRAME_DATA_RECEIVE

FRAME_DATA_SEND

FRAME_DATA_RECEIVE

FRAME_DATA_RECEIVE

Also it is random data sending/receiving without special sequential order and without any HTTP header data.

That makes the usage with reverse proxies impossible due to the lack of Websockets support by most known reverse proxies; but half of the XHR transport may work with Apache reverse proxy.
Next Section: HTML5 Client: Using two languages