You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Werner Punz (JIRA)" <de...@myfaces.apache.org> on 2018/06/21 13:33:00 UTC
[jira] [Resolved] (MYFACES-4240) onopen
eventhandler is called only the first time
[ https://issues.apache.org/jira/browse/MYFACES-4240?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Werner Punz resolved MYFACES-4240.
----------------------------------
Resolution: Fixed
> <f:websocket /> onopen eventhandler is called only the first time
> -----------------------------------------------------------------
>
> Key: MYFACES-4240
> URL: https://issues.apache.org/jira/browse/MYFACES-4240
> Project: MyFaces Core
> Issue Type: Bug
> Components: JSR-372
> Affects Versions: 2.3.1
> Environment: java 1.8, tomcat 9.0.8, Windows 10
> Reporter: Harry Ring
> Assignee: Werner Punz
> Priority: Critical
> Fix For: 2.3.2
>
> Attachments: screenshot-1.png
>
>
> I use the socket below.
> _<f:websocket id="usersocket" connected="false"_
> _onmessage="userSocketListener"_
> _onopen="userSocketOpened"_
> _onclose="userSocketClosed"_
> _onerror="alert('ERROR')"_
> _/>_
>
> If I call _jsf.push.open('usersocket')_ and __ _userSocketOpened()_ is called.
> Then I call _jsf.__push.close('usersocket')_ and _userSocketClosed()_ is called.
> Then I call _jsf.push.open('usersocket')_ and _userSocketOpened()_ is not called.
>
> I looked into myfaces-api-2.3.1-sources.jar!\META-INF\internal-resources\org.apache.myfaces.core.api\jsf.js and found the _onopen_ eventhandler in line 283:
>
> _socket.onopen = function(event) {_
> _{color:#d04437}if (reconnectAttempts == null) {color}{_
> _var clientIds = clientIdsByTokens[channelToken];_
> _for (var i = clientIds.length - 1; i >= 0; i--){_
> _var socketClientId = clientIds[i];_
> _components[socketClientId]['onopen'](channel);_
> _}_
> _}_
> _reconnectAttempts = 0;_
> _}_
> When the socket is opened the first time reconnectAttempts is null, when the socket is opened the second time reconnectAttempts is 0, so the line should be
> _if (reconnectAttempts == null || reconnectAttempts == 0)_
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)