web.xml
Code: Select all
<servlet>
<servlet-name>Push Servlet</servlet-name>
<servlet-class>org.primefaces.push.PushServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Push Servlet</servlet-name>
<url-pattern>/primepush/*</url-pattern>
</servlet-mapping>
Code: Select all
private int count;
public void setCount(int count) {
this.count = count;
}
public int getCount() {
return count;
}
public synchronized void increment() {
count++;
PushContext pushContext = PushContextFactory.getDefault().getPushContext();
pushContext.push("/counter", String.valueOf(count));
}
Code: Select all
<h:form>
<h:outputText id="counter" value="#{bean.count}" styleClass="display" />
<p:commandButton value="Click" actionListener="#{bean.increment}" />
</h:form>
<p:socket channel="/counter" onMessage="handleMessage" />
<script type="text/javascript">
function handleMessage(data) {
$('.display').html(data);
}
</script>
Code: Select all
<p:socket channel="/counter" >
<p:ajax event="message" update="@(.display)" />
</p:socket>
Chrome console:
Firefox console:
IE console:
In FF console, when I click on 'counter:2:1' link, pushed data is displayed, like:
Code: Select all
12|{"data":"4"}