public class MessageHandler extends Object
Modifier and Type | Field and Description |
---|---|
static String |
JSON_COMMUNICATION_PREFIX |
static String |
JSON_COMMUNICATION_SUFFIX |
protected int |
lastProcessingTime
Holds the time spent rendering the last request
|
protected int |
totalProcessingTime
Holds the total time spent rendering requests during the lifetime of the
session.
|
Constructor and Description |
---|
MessageHandler() |
Modifier and Type | Method and Description |
---|---|
String |
getCsrfToken()
Gets the token (aka double submit cookie) that the server uses to protect
against Cross Site Request Forgery attacks.
|
int |
getLastSeenServerSyncId()
Gets the server id included in the last received response.
|
String |
getPushId()
Gets the push connection identifier for this session.
|
protected void |
handleJSON(ValueMap json) |
void |
handleMessage(ValueMap json)
Handles a received UIDL JSON text, parsing it, and passing it on to the
appropriate handlers, while logging timing information.
|
boolean |
isInitialUidlHandled()
Checks if the first UIDL has been handled
|
boolean |
isUpdatingState()
Checks whether state changes are currently being processed.
|
static ValueMap |
parseJson(String jsonText)
Unwraps and parses the given JSON, originating from the server
|
static ValueMap |
parseWrappedJson(String wrappedJsonText)
Parse the given wrapped JSON, received from the server, to a ValueMap
|
void |
resumeResponseHandling(Object lock)
Resumes the rendering process once all locks have been removed.
|
void |
setConnection(ApplicationConnection connection)
Sets the application connection this instance is connected to.
|
static String |
stripJSONWrapping(String jsonWithWrapping)
Strips the JSON wrapping from the given json string with wrapping.
|
void |
suspendReponseHandling(Object lock)
This method can be used to postpone rendering of a response for a short
period of time (e.g.
|
public static final String JSON_COMMUNICATION_PREFIX
public static final String JSON_COMMUNICATION_SUFFIX
protected int lastProcessingTime
protected int totalProcessingTime
public void setConnection(ApplicationConnection connection)
connection
- the application connection this instance is connected topublic void handleMessage(ValueMap json)
jsonText
- The JSON to handleprotected void handleJSON(ValueMap json)
public void suspendReponseHandling(Object lock)
lock
- public void resumeResponseHandling(Object lock)
lock
- public int getLastSeenServerSyncId()
This id can be used by connectors to determine whether new data has been received from the server to avoid doing the same calculations multiple times.
No guarantees are made for the structure of the id other than that there will be a new unique value every time a new response with data from the server is received.
The initial id when no request has yet been processed is -1.
public String getCsrfToken()
public String getPushId()
public boolean isUpdatingState()
true
if the internal state might be inconsistent
because changes are being processed; false
if the
state should be consistentpublic boolean isInitialUidlHandled()
public static String stripJSONWrapping(String jsonWithWrapping)
jsonWithWrapping
- the JSON received from the serverpublic static ValueMap parseJson(String jsonText)
jsonText
- the json from the serverpublic static ValueMap parseWrappedJson(String wrappedJsonText)
wrappedJsonText
- the json, wrapped as done by the serverCopyright © 2019 Vaadin Ltd. All rights reserved.