[
https://issues.apache.org/jira/browse/WICKET-6762?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17071507#comment-17071507
]
ASF subversion and git services commented on WICKET-6762:
---------------------------------------------------------
Commit 7a6b772003da0fb6f2edd8fd7b45e7e87f45de28 in wicket's branch
refs/heads/wicket-8.x from Thomas
[ https://gitbox.apache.org/repos/asf?p=wicket.git;h=7a6b772 ]
WICKET-6762 Allow users to customize websocket setup (#418)
(cherry picked from commit 9c073fae3f5887690952b9792db9834c39d74aae)
> 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
> Priority: Major
>
> {{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, 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)