Package org.zkoss.zkmax.ui.comet
Class CometServerPush
- java.lang.Object
-
- org.zkoss.zkex.ui.comet.CometServerPush
-
- org.zkoss.zkmax.ui.comet.CometServerPush
-
- All Implemented Interfaces:
ServerPush
public class CometServerPush extends CometServerPush
ZK Comet that supports Servlet 3 asynchronous processing. This implementation will detect if the server supports Servlet 3, and then use the right implementation automatically.- Since:
- 6.0.0
- Author:
- tomyeh
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.zkoss.zkex.ui.comet.CometServerPush
CometServerPush.AsyncInfo, CometServerPush.ThreadInfo
-
-
Constructor Summary
Constructors Constructor Description CometServerPush()The default constructor.CometServerPush(boolean async)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidbeforeUpdate(CometServerPush.ThreadInfo info)protected java.lang.StringgetStartScript()Returns the JavaScript codes to enable (a.k.a., start) the server push.protected java.lang.StringgetStopScript()Returns the JavaScript codes to disable (a.k.a., stop) the server push.protected voidonStart()Called whenCometServerPush.start(org.zkoss.zk.ui.Desktop)is called.protected voidprocessRequest(Execution exec, CometServerPush.AsyncInfo ai)Called when receiving the comet request from the client.protected booleansetBusy()Sets busy and return if it is busy for processing other request.voidstart(Desktop desktop)Starts the server push.-
Methods inherited from class org.zkoss.zkex.ui.comet.CometServerPush
activate, deactivate, getDesktop, getIntPref, getStartScript, isActive, onPiggyback, onStop, resume, schedule, startClientPush, stop, stopClientPush
-
-
-
-
Constructor Detail
-
CometServerPush
public CometServerPush()
The default constructor. It detects if the server supports Servlet 3, and then use the right implementation accordingly.If you prefer to disable the use of Servlet 3 or vice versa, you could specify a library property called
org.zkoss.zkmax.ui.comet.async.disabled. Notice that enabling the asynchronous support in a server not supporting Servlet 3 is not allowed.
-
CometServerPush
public CometServerPush(boolean async)
- Parameters:
async- whether to utilities Servlet 3 asynchronous processing support. Don't specify it to true if the server doesn't support Servlet 3. The result is unpredictable.
-
-
Method Detail
-
start
public void start(Desktop desktop)
Description copied from class:CometServerPushStarts the server push.The derived class rarely need to override this method. Rather, override
CometServerPush.startClientPush().- Specified by:
startin interfaceServerPush- Overrides:
startin classCometServerPush
-
getStartScript
protected java.lang.String getStartScript()
Description copied from class:CometServerPushReturns the JavaScript codes to enable (a.k.a., start) the server push. It is called byCometServerPush.startClientPush()to prepare the script ofAuScriptthat will be sent to the client.- Overrides:
getStartScriptin classCometServerPush
-
getStopScript
protected java.lang.String getStopScript()
Description copied from class:CometServerPushReturns the JavaScript codes to disable (a.k.a., stop) the server push. It is called byCometServerPush.stopClientPush()to prepare the script ofAuScriptthat will be sent to the client.- Overrides:
getStopScriptin classCometServerPush
-
onStart
protected void onStart()
Description copied from class:CometServerPushCalled whenCometServerPush.start(org.zkoss.zk.ui.Desktop)is called. This method is called beforeCometServerPush.startClientPush(), and used to initialize the desktop, if necessary.The default implementation initializes an extension to process the comet request.
- Overrides:
onStartin classCometServerPush
-
setBusy
protected boolean setBusy()
Description copied from class:CometServerPushSets busy and return if it is busy for processing other request. If it is busy, true is returned. If it is not busy, false is returned but it is marked as busy.It is possible since the client might abort the previous one and issue a new one but their server didn't know.
- Overrides:
setBusyin classCometServerPush
-
processRequest
protected void processRequest(Execution exec, CometServerPush.AsyncInfo ai) throws java.io.IOException
Called when receiving the comet request from the client.- Overrides:
processRequestin classCometServerPush- Throws:
java.io.IOException
-
beforeUpdate
protected void beforeUpdate(CometServerPush.ThreadInfo info)
- Overrides:
beforeUpdatein classCometServerPush
-
-