We are integrating Atmosphere into our current application. Everything works great in IE 11 and the latest version of Chrome. In IE 10 however, we are unabled to receive push notifications after the client makes an AJAX call to the server.
We turned on Atmosphere debugging, and here is the log in IE 10.
Invoking executeWebSocket
Using URL: ws://t1c.lh.com:8080/wicket/page?12-IResourceListener.9-&X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=2.0.8-jquery&X.....
Websocket successfully opened
Invoking 1 global callbacks: opening
....Do an already existing AJAX request.....
Invoking 1 global callbacks: unsubscribe
Websocket closed normally
After the unsubscribe call, the client no longer receives server push events. This unsubscribe call does not happen in IE 11. IE 11 receives push notification without an issue.
Any ideas on how to fix?
Here is our atmosphere setup. Using Tomcat 8.0.23.
<servlet>
<description>Atmospherefilter</description>
<servlet-name>Atmospherefilter</servlet-name>
<servlet-class>org.atmosphere.cpr.AtmosphereServlet</servlet-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>AppClassHere</param-value>
</init-param>
<init-param>
<param-name>configuration</param-name>
<param-value>development</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.useWebSocket</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.useNative</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.cpr.sessionSupport</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.websocket.maxIdleTime</param-name>
<param-value>60000</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.useWebSocketAndServlet3</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.cpr.asyncSupport</param-name>
<param-value>org.atmosphere.container.JSR356AsyncSupport</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.cpr.broadcastFactory</param-name>
<param-value>org.atmosphere.cpr.DefaultBroadcasterFactory</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.cpr.broadcasterCacheClass</param-name>
<param-value>org.atmosphere.cache.UUIDBroadcasterCache</param-value>
</init-param>
<init-param>
<param-name>filterMappingUrlPattern</param-name>
<param-value>/*</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.websocket.WebSocketProtocol</param-name>
<param-value>org.atmosphere.websocket.protocol.EchoProtocol</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.cpr.broadcastFilterClasses</param-name>
<param-value>org.apache.wicket.atmosphere.TrackMessageSizeFilter</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>Atmospherefilter</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Thanks, Matt
Can you share an end to end test case that reproduce the issue? But first, please make sure you try with a more recent version of the javascript client:
https://github.com/Atmosphere/atmosphere-javascript
Just send your test case to the mailing list
https://groups.google.com/group/atmosphere-framework?pli=1
-- Jeanfrancois (Atmosphere's lead)