[ 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)