Use web socket for server push
Use web socket instead long polling for the current server push implementation. Note that this is not the equivalent of web socket serverpush in Zk EE as there's no web socket base rendering engine implementation.
Added commits 540a84d and 5d60f2a to set back websocket as the default on the development branch, so, there’s no need for special configuration in zk.xml or start script.
Still it is important to configure properly the nginx proxy to make this work, the recommended for nginx proxy is still the same:
About apache proxy there was a recent thread in forums:
But we didn't arrive to a conclusion about recommendation to setup apache proxy.
Some metrics test would be nice.
I don't expect there's significant performance difference with the atmosphere based implementation. The primary benefit is the reduce dependency, simpler implementation and it avoid the max concurrent AJAX (XmlHttpRequest) requests limitation (usually 6 per domain).
For now, this is optional. To turn it on, copy zk-websocket-serverpush.xml (at org.adempiere.ui.zk/WEB-INF folder) to a folder accessible to your server instance and add -Dorg.zkoss.zk.config.path=file:///<path>/zk-websocket-serverpush.xml to the VMOPTS part of your server startup script. When running from Eclipse, add the contents of zk-websocket-serverpush.xml to your <workspace>/zk.xml file.
With latest changes, tested working fine with nginx using the following configuration: