Thomas Heigl created WICKET-6762: ------------------------------------ Summary: Support manual initialization of websocket connections Key: WICKET-6762 URL: https://issues.apache.org/jira/browse/WICKET-6762 Project: Wicket Issue Type: Improvement Components: wicket-native-websocket Affects Versions: 8.7.0 Reporter: Thomas Heigl Assignee: Martin Tzvetanov Grigorov
{{BaseWebSocketBehavior}} currently calls {{Wicket.WebSocket.createDefaultConnection()}} on DOM ready. I would like to be able to delay connection creation and trigger it myself. Desktop users of our application tend to open quite a number of tabs from search result pages and other lists and Wicket creates a new websocket connection for all tabs opened in the background. I implemented a solution that uses the Page Visibility API to open and close websocket connections when a page becomes visible or hidden. Since I currently cannot disable the default connection event, I'm closing the connection immediately: {code:java} if (document.hidden) { if (Wicket.WebSocket.INSTANCE) { Wicket.WebSocket.INSTANCE.close(); } } var connectFunction = function () { if (document.hidden) { if (Wicket.WebSocket.INSTANCE) { Wicket.WebSocket.INSTANCE.close(); } } else { if (!Wicket.WebSocket.INSTANCE) { Wicket.WebSocket.createDefaultConnection(); } } }; document.addEventListener('visibilitychange', connectFunction, false); {code} This works, but most browsers log an error like this: {code:java} Connection failed. WebSocket is closed before the connection is established. {code} A configuration option to disable automatic connection creation would solve this. -- This message was sent by Atlassian Jira (v8.3.4#803005)