uiService.sendDataToServer(eventInstruction);
int delay = 1000;
if (create.containsKey(PROPERTY.FIXDELAY)) delay = create.getInt(PROPERTY.FIXDELAY);
Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
@Override
public boolean execute() {
final PTInstruction eventInstruction = new PTInstruction();
eventInstruction.setObjectID(create.getObjectID());
eventInstruction.put(TYPE.KEY, TYPE.KEY_.EVENT);
eventInstruction.put(PROPERTY.POLL, true);
uiService.sendDataToServer(eventInstruction);
return !hasCommunicationError;
}
}, delay);
} else {
super.create(create, uiService);
final String wsServerURL = GWT.getHostPageBaseURL().replaceFirst("http", "ws") + "ws" + "?" + APPLICATION.VIEW_ID + "=" + UIBuilder.sessionID;
socketClient = new WebSocketClient(new WebSocketCallback() {
@Override
public void message(final String message) {
final JSONObject data = JSONParser.parseStrict(message).isObject();
if (data.containsKey(Dictionnary.APPLICATION.PING)) return;
uiService.update(data);
}
@Override
public void disconnected() {
log.info("Disconnected from: " + wsServerURL);
uiService.onCommunicationError(new Exception("Websocket connection lost."));
uiService.unRegisterObject(getObjectID());
}
@Override
public void connected() {
log.info("Connected to: " + wsServerURL);
}
});
log.info("Connecting to: " + wsServerURL);
socketClient.connect(wsServerURL);
int ping = 1000;
if (create.containsKey(PROPERTY.PINGDELAY)) ping = create.getInt(PROPERTY.PINGDELAY);
if (ping > 0) {
Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
@Override
public boolean execute() {
final int timeStamp = (int) (new Date().getTime() * .001);
final JSONObject jso = new JSONObject();