I can reproduce this with the showcase as well as my app. In the showcase/push/counter.xhtml example I added 6 p:socket
Code: Select all
...
<p:commandButton value="Click" actionListener="#{globalCounter.increment}" />
</h:form>
<p:socket onMessage="handleMessage" channel="/counter" />
<p:socket onMessage="handleMessage" channel="/counter2" />
<p:socket onMessage="handleMessage" channel="/counter3" />
<p:socket onMessage="handleMessage" channel="/counter4" />
<p:socket onMessage="handleMessage" channel="/counter5" />
<p:socket onMessage="handleMessage" channel="/counter6" />
<h3>Source</h3>
...
The source JS emitted on IE9 for counter6 is
Code: Select all
<script type="text/javascript">$(function() {widget_j_idt27 = new PrimeFaces.widget.Socket({url:'/prime-showcase/primepush/counter6',autoConnect:true,transport:'websocket',fallbackTransport:'long-polling',onMessage:handleMessage});});</script>
Code: Select all
<script type="text/javascript">$(function() {widget_j_idt27 = new PrimeFaces.widget.Socket({url:'/prime-showcase/primepush/counter6;jsessionid=erlutwij24bwpd3mvd94ra8l',autoConnect:true,transport:'websocket',fallbackTransport:'long-polling',onMessage:handleMessage});});</script>
Any thoughts how we can get around this? I may be able to use only 2 p:socket but it would feel messy to eval the data to decide which js function to then call instead of the easy to read onmessage= attribute.
*EDIT* removed [BUG] from title, confirmed it's an IE browser limitation