/** * 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); } }
@Override public void run() { atmResource.resume(); } });
@Override public void complete() { r.resume(); }
@Override public void run() { atmResource.resume(); } });
void resume(AtmosphereResource resource) { resource.resume(); }
public void resume() { atmResource.resume(); }
public void resume() { atmResource.resume(); }
@Override protected void doClose() { resource.resume(); try { resource.close(); } catch (IOException e) {} }
void terminate(boolean serverInitiated) { AtmosphereGwtHandler s = atmosphereHandler; if (s != null) { atmosphereHandler = null; if (suspended) { atmResource.resume(); } s.cometTerminated(this, serverInitiated); } }
void terminate(boolean serverInitiated) { AtmosphereGwtHandler s = atmosphereHandler; if (s != null) { atmosphereHandler = null; if (suspended) { atmResource.resume(); } s.cometTerminated(this, serverInitiated); } }
@Override protected void doClose() { resource.resume(); try { resource.close(); } catch (IOException e) {} }
public void disconnect(GwtAtmosphereResource resource) { if (resource != null) { logger.debug("Resuming connection[" + resource.getConnectionID() + "] after client disconnect message"); resource.getAtmosphereResource().resume(); } }
private void flushData(AtmosphereResponse r, byte[] data) throws IOException { BlockingQueue<AtmosphereResource> queue = (BlockingQueue<AtmosphereResource>) request.getSession().getAttribute("PendingResource"); if (queue != null) { AtmosphereResource resource; try { resource = queue.take(); } catch (InterruptedException e) { throw new IOException(e); } resource.getResponse().getOutputStream().write(data); resource.resume(); r.flushBuffer(); } else { r.write(data); } }
public void disconnect(GwtAtmosphereResource resource) { if (resource != null) { logger.debug("Resuming connection[" + resource.getConnectionID() + "] after client disconnect message"); resource.getAtmosphereResource().resume(); } }
public void writeAndResume(Object message) throws IOException { try { AtmospherePollService.writeResponse(atm, message); } finally { atm.getRequest().removeAttribute(GWT_SUSPENDED); atm.resume(); } }
@Override protected void disconnect() { if (broadcaster.getAtmosphereResources().size() == 0) { onClose(); } else { for (AtmosphereResource r : broadcaster.getAtmosphereResources()) { r.resume(); try { r.close(); } catch (IOException e) { throw new RuntimeException(e); } } } }
@Override public void resume() { try { r.getAtmosphereConfig().framework().doCometSupport(r.getRequest(), r.getResponse()); } catch (IOException e) { logger.warn("",e); } catch (ServletException e) { logger.warn("", e); } r.resume(); }
@Override public void onSuspend(AtmosphereResource resource) { AtmosphereRequest req = resource.getRequest(); String when = req.getParameter("when"); if (when.equals("open")) { resource.resume(); onOpen(); } else if (when.equals("poll")) { this.broadcaster.addAtmosphereResource(resource); retrieveCache(req.getParameter("lastEventIds")); } }
@Override public void onStateChange(AtmosphereResourceEvent event) throws IOException { if (event.getMessage() == null || event.isCancelled() || event.isResuming() || event.isResumedOnTimeout()) { return; } AtmosphereResource resource = event.getResource(); AtmosphereRequest req = resource.getRequest(); AtmosphereResponse res = resource.getResponse(); PrintWriter writer = res.getWriter(); writer.print((String) event.getMessage()); writer.flush(); if (req.getParameter("transport").startsWith("longpoll")) { req.setAttribute("used", true); resource.resume(); } }
@Override public void onSuspend(AtmosphereResourceEvent event) { try { if (entity != null) { if (waitForResource) { bcaster.awaitAndBroadcast(entity, 30, TimeUnit.SECONDS); } else { bcaster.broadcastOnResume(entity); event.getResource().resume(); } } } finally { event.getResource().removeEventListener(this); } } });