@Override public byte[] transformPayload(AtmosphereResponse response, byte[] responseDraft, byte[] data) throws IOException { return createResponse(response, responseDraft); } }
private void scheduleHeartbeat(AtmosphereResource r) { //REVISIT make the schedule configurable heartbeat.addAtmosphereResource(r); if (!heartbeatScheduled) { heartbeat.scheduleFixedBroadcast(String.format(getHeartbeatTemplate(), getHeartbeatTemplateArguments()), DEFAULT_HEARTBEAT_INTERVAL, DEFAULT_HEARTBEAT_INTERVAL, TimeUnit.SECONDS); heartbeatScheduled = true; } }
protected AtmosphereRequest createAtmosphereRequest(AtmosphereRequest request, String body) throws IOException { JSONObject jsonpart = parseJsonPart(msgreader); final String id = getString(jsonpart, "id"); if (id != null) { request.localAttributes().put(REQUEST_ID, id); final boolean continued = getBoolean(jsonpart, "continue"); Reader reader = readerPool.getReader(id, false); if (reader != null) { } else { final String method = getString(jsonpart, "method"); String path = getString(jsonpart, "path"); final String type = getString(jsonpart, "type"); final String accept = getString(jsonpart, "accept");
&& request.getAttribute(HEARTBEAT_SCHEDULED) == null) { r.suspend(); scheduleHeartbeat(r); request.setAttribute(HEARTBEAT_SCHEDULED, "true"); return Action.SUSPEND; AtmosphereRequest ar = createAtmosphereRequest(request, body); if (ar == null) { return Action.CANCELLED; response.request(ar); attachWriter(r);
@Override public void configure(AtmosphereConfig config) { super.configure(config); //TODO make the heartbeat configurable heartbeat = config.getBroadcasterFactory().lookup(DefaultBroadcaster.class, getHeartbeatBroadcasterName()); if (heartbeat == null) { heartbeat = config.getBroadcasterFactory().get(DefaultBroadcaster.class, getHeartbeatBroadcasterName()); } }
jsonpart.put("type", ct); if (!isLastResponse(request, response)) { jsonpart.put("continue", true);