if (doneProcessing.get() && !response.resource().getAtmosphereConfig().framework().isDestroyed()){ throw Utils.ioExceptionForChannel(channel, response.uuid());
void prepareForClose(final AtmosphereResponse response) throws UnsupportedEncodingException { AtmosphereResource r = response != null ? response.resource() : null; if (r == null || r.isSuspended() && !r.isResumed()) { keepAlive = false; } _close(response); }
void prepareForClose(final AtmosphereResponse response) throws UnsupportedEncodingException { AtmosphereResource r = response != null ? response.resource() : null; if (r == null || r.isSuspended() && !r.isResumed()) { keepAlive = false; } _close(response); }
if (doneProcessing.get() && !response.resource().getAtmosphereConfig().framework().isDestroyed()){ throw Utils.ioExceptionForChannel(channel, response.uuid());
String refid = (String)request.getAttribute(WebSocketConstants.DEFAULT_REQUEST_ID_KEY); if (AtmosphereResource.TRANSPORT.WEBSOCKET != response.resource().transport()) { return payload;
@Override public AsyncIOWriter write(final AtmosphereResponse r, byte[] data, int offset, int length) throws IOException { logger.trace("Writing {} with transport {}", r.resource().uuid(), r.resource().transport()); boolean transform = filters.size() > 0 && r.getStatus() < 400; if (transform) { data = transform(r, data, offset, length); offset = 0; length = data.length; } pendingWrite.incrementAndGet(); if (!headerWritten) { out.setChunked(true); constructStatusAndHeaders(r, out); headerWritten = true; } String sdata = new String(data, offset, length, r.getCharacterEncoding()); out.write(sdata); lastWrite = System.currentTimeMillis(); AtmosphereResourceImpl impl = AtmosphereResourceImpl.class.cast(r.resource()); if (sdata.trim().length() > 0 && impl.transport().equals(AtmosphereResource.TRANSPORT.LONG_POLLING)) { close(r); } return this; }
@Override public AsyncIOWriter write(final AtmosphereResponse r, byte[] data, int offset, int length) throws IOException { logger.trace("Writing {} with transport {}", r.resource().uuid(), r.resource().transport()); boolean transform = filters.size() > 0 && r.getStatus() < 400; if (transform) { data = transform(r, data, offset, length); offset = 0; length = data.length; } pendingWrite.incrementAndGet(); out.write(new String(data, offset, length, r.getCharacterEncoding())); byteWritten = true; lastWrite = System.currentTimeMillis(); if (resumeOnBroadcast) { out.close(); _close(r.request()); } return this; }
String refid = (String)request.getAttribute(WebSocketConstants.DEFAULT_REQUEST_ID_KEY); if (AtmosphereResource.TRANSPORT.WEBSOCKET != response.resource().transport()) { return payload;
protected final Object wrapMessage(AtmosphereResponse res, String message) { if (message != null && message.startsWith("heartbeat-")) { String identity = (String) getContextValue(res.request(), IDENTITY); return new Heartbeat(String.valueOf(System.nanoTime()), identity); } else { Response.Builder builder = createResponseBuilder(res, message); String identity = (String) getContextValue(res.request(), IDENTITY); AtomicInteger expectedResponseCount = (AtomicInteger) getContextValue(res.request(), transactionIdentity.get() + RESPONSE_COUNTER); ResponseMessage m = null; if (expectedResponseCount != null && res.resource().transport() != AtmosphereResource.TRANSPORT.WEBSOCKET) { m = (ResponseMessage) getContextValue(res.request(), transactionIdentity.get() + ResponseMessage.class.getName()); if (m != null) { m.response(builder.build()); } else { m = new ResponseMessage(identity, builder.build()); } if (expectedResponseCount.decrementAndGet() <= 0) { return m; } else { addContextValue(res.request(), transactionIdentity.get() + ResponseMessage.class.getName(), m); return null; } } if (m == null) { m = new ResponseMessage(identity, builder.build()); } return m; } }