This option is available in Qlik Sense June 2018 Patch 1 and later releases.
Description of related problem:
Getting errors "Connection to the Qlik Sense engine failed for unspecified reasons. Refresh your browser or contact our system administrator" for external users on other browsers except for IE when they open the Qlik sense app and leave it inactive until it exceeds the Firewall session idle timeout. This is followed by a connection reset for the TCP WebSocket session.
TCP WebSocket connection is terminated by the firewall because the firewall is not receiving any TCP traffic such as keep-alive packets from client browser (e.g. Firefox, older Chrome versions). Specific web browsers have their own tcp keep-alive behavior.
This issue may be found with less frequency with IE because it sends the TCP Websocket keep-alive more frequent than any other main stream browser. Here are the default intervals for the three main browsers latest releases as of September 2020:
The web socket functionality is default delivered switched off not to affect any existing customers. Customers who do not experience any issues with web sockets terminated by the network due to inactive SHOULD NOT switch this feature ON since it will send unnecessary traffic on the network. See How are WebSockets used in QlikSense ? for more information.
How to configure?
Stop the Qlik Sense Proxy Service
Edit the file C:\Program Files\Qlik\Sense\Proxy\Proxy.exe.config This location may not be available if Qlik Sense was not installed in the default location.
Add the configuration key:
<add key="WebSocketPingInterval" value="0"/> <!-- Interval in seconds for the web socket ping to the client (a value of "0" is disabling the ping)–>
Where value is a suitable positive number depending on the inactive web socket timeout setting in the network. The effective interval that the Qlik Sense Proxy server will send keep-alive messages towards the client my oscillate between 2 x value and 1 x value, since it also takes into account backend inter-process socket activity. Eg: setting the value of WebSocketPingInterval to 30 may lead to keep-alive messages sent to the client every 30 or 60 seconds.
Note: The Qlik Sense Proxy service may not send keep-alive packets if it detects activity on that client's Websocket tcp session.
Recommended is 60-300 second range, shorter interval generates more load on Proxy CPU and network. It should be set as high as possible, meaning it's best to identify at which interval an intermediate proxy cuts the connection when it perceives it as idle, and then set the ping interval to a slightly smaller value.
A too small number (e.g. less than 30) will load the proxy and the network and IS NOT recommended. Suitable numbers could be 60 to 300 (i.e. 1 minute to 5 minutes), but it all depends on the network configuration (if the network removes web sockets that have been inactive for more than 5 minutes then, of course, the value must be set something less than 5 minutes (i.e. less than 300)). If a lower value is required, it is recommended to investigate the components involved in the connection, such as third party proxies and network load balancers to configure them with less restrictive timeouts.
It is possible that the same WebSocketPingInterval value has different behaviors in each Qlik Sense Hub section due to various network device. The value may keep the connection live in Dashboard but still lose connection in Data Load Editor. You may test with a lower WebSocketPingInterval value until the proper value is found to keep connection in all sections. For example, when connecting CloudFlare as web application firewall, the WebSocketPingInterval value may need to set to 10 seconds otherwise "connection lost" may still be received in Data Load Editor even the rest of Qlik Sense Hub keeps connected.