/** * Tries to send a critical notification to the client and close the * connection. Does nothing if the connection is already closed. */ private static void sendNotificationAndDisconnect( AtmosphereResource resource, String notificationJson) { // TODO Implemented differently from sendRefreshAndDisconnect try { if (resource instanceof AtmosphereResourceImpl && !((AtmosphereResourceImpl) resource).isInScope()) { // The resource is no longer valid so we should not write // anything to it getLogger().fine( "sendNotificationAndDisconnect called for resource no longer in scope"); return; } resource.getResponse() .setContentType(JsonConstants.JSON_CONTENT_TYPE); resource.getResponse().getWriter().write(notificationJson); resource.resume(); } catch (Exception e) { getLogger().log(Level.FINEST, "Failed to send critical notification to client", e); } }
@RequestMapping("/subscribe") public ResponseEntity<HttpStatus> connect(AtmosphereResource resource) { resource.getResponse().setHeader("Access-Control-Expose-Headers", ATMOSPHERE_TRACKING_ID + "," + X_CACHE_DATE); resource.suspend(); }
public GwtRpcSerializer(AtmosphereResource resource) { this.resource = resource; // https://github.com/Atmosphere/atmosphere/issues/1063 this.outputEncoding = resource.getResponse().getCharacterEncoding() == null ? "UTF-8" : resource.getResponse().getCharacterEncoding(); }
@Override protected void doSend(String data) { try { PrintWriter writer = resource.getResponse().getWriter(); writer.print(data); writer.flush(); } catch (IOException e) { throw new RuntimeException(e); } }
@Override protected void doWrite(String data) { try { PrintWriter writer = resource.getResponse().getWriter(); writer.print(data); writer.flush(); } catch (IOException e) { throw new RuntimeException(e); } }
private void attachWriter(final AtmosphereResource r) { AtmosphereResponse res = r.getResponse(); AsyncIOWriter writer = res.getAsyncIOWriter(); if (writer instanceof AtmosphereInterceptorWriter) { AtmosphereInterceptorWriter.class.cast(writer).interceptor(interceptor, 0); } }
private void attachWriter(final AtmosphereResource r) { AtmosphereResponse res = r.getResponse(); AsyncIOWriter writer = res.getAsyncIOWriter(); if (writer instanceof AtmosphereInterceptorWriter) { AtmosphereInterceptorWriter.class.cast(writer).interceptor(interceptor, 0); } }
@Override public void onSuspend(AtmosphereResourceEvent event) { AtmosphereResponse response = event.getResource().getResponse(); try { response.write("o".getBytes()).flushBuffer(); } catch (IOException e) { logger.trace("", e); } } }
@Override public void onSuspend(AtmosphereResourceEvent event) { AtmosphereResponse response = event.getResource().getResponse(); try { response.write("o".getBytes()).flushBuffer(); } catch (IOException e) { logger.trace("", e); } } }
@Override public void onPreSuspend(AtmosphereResourceEvent event) { AtmosphereResponse response = event.getResource().getResponse(); response.setContentType("text/plain"); response.write("o\n".getBytes()); } }
@Override public void onRequest(final AtmosphereResource resource) throws IOException { LOG.fine("onRequest"); try { invokeInternal(null, resource.getRequest().getServletContext(), resource.getRequest(), resource.getResponse()); } catch (Exception e) { LOG.log(Level.WARNING, "Failed to invoke service", e); } } }
@Override public void onRequest(final AtmosphereResource resource) throws IOException { LOG.fine("onRequest"); try { invokeInternal(null, resource.getRequest().getServletContext(), resource.getRequest(), resource.getResponse()); } catch (Exception e) { LOG.log(Level.WARNING, "Failed to invoke service", e); } } }
@Override public void onRequest(final AtmosphereResource resource) throws IOException { LOG.fine("onRequest"); try { invokeInternal(null, resource.getRequest().getServletContext(), resource.getRequest(), resource.getResponse()); } catch (Exception e) { LOG.log(Level.WARNING, "Failed to invoke service", e); } } }
@Override public void onRequest(final AtmosphereResource resource) throws IOException { LOG.fine("onRequest"); try { invokeInternal(null, resource.getRequest().getServletContext(), resource.getRequest(), resource.getResponse()); } catch (Exception e) { LOG.log(Level.WARNING, "Failed to invoke service", e); } } }
@Override public void onSuspend(AtmosphereResourceEvent event) { final String srid = (String)event.getResource().getRequest() .getAttribute(ApplicationConfig.SUSPENDED_ATMOSPHERE_RESOURCE_UUID); LOG.log(Level.FINE, "Registrering suspended resource: {}", srid); suspendedResponses.put(srid, event.getResource().getResponse()); AsyncIOWriter writer = event.getResource().getResponse().getAsyncIOWriter(); if (writer instanceof AtmosphereInterceptorWriter) { ((AtmosphereInterceptorWriter)writer).interceptor(interceptor); } }
@Override public void onRequest(final AtmosphereResource resource) throws IOException { LOG.fine("onRequest"); try { invokeInternal(null, resource.getRequest().getServletContext(), resource.getRequest(), resource.getResponse()); } catch (Exception e) { LOG.log(Level.WARNING, "Failed to invoke service", e); } } }
@Override public void onSuspend(AtmosphereResourceEvent event) { final String srid = (String)event.getResource().getRequest() .getAttribute(ApplicationConfig.SUSPENDED_ATMOSPHERE_RESOURCE_UUID); LOG.log(Level.FINE, "Registrering suspended resource: {}", srid); suspendedResponses.put(srid, event.getResource().getResponse()); AsyncIOWriter writer = event.getResource().getResponse().getAsyncIOWriter(); if (writer instanceof AtmosphereInterceptorWriter) { ((AtmosphereInterceptorWriter)writer).interceptor(interceptor); } }
@Override public void onSuspend(AtmosphereResourceEvent event) { AtmosphereResponse response = event.getResource().getResponse(); response.setContentType("application/javascript"); try { response.write("o\r\n\r\n".getBytes(), true).flushBuffer(); response.closeStreamOrWriter(); } catch (IOException e) { logger.trace("", e); } }
@Override public void onPreSuspend(AtmosphereResourceEvent event) { AtmosphereResponse response = event.getResource().getResponse(); response.setContentType("application/javascript"); try { response.write(padding, true).flushBuffer(); response.write("o\n".getBytes(), true).flushBuffer(); } catch (IOException e) { logger.trace("", e); } }
public StreamSocket(AtmosphereResource resource) { super(resource); this.isAndroid = isAndroid(resource.getRequest().getHeader("user-agent")); resource.getResponse().setContentType(streamContentType()); }