@Override protected int getPaddingRequired() { if (resource.getRequest().getHeader("User-Agent").toLowerCase().contains("android 2.")) { return MAX_PADDING_REQUIRED; } else { return 0; } }
@Override protected int getPaddingRequired() { if (resource.getRequest().getHeader("User-Agent").toLowerCase().contains("android 2.")) { return MAX_PADDING_REQUIRED; } else { return 0; } }
public ManagedStreamResponseWriter(GwtAtmosphereResourceImpl resource) { super(resource); String userAgent = resource.getAtmosphereResource().getRequest().getHeader("User-Agent"); chrome = userAgent != null && userAgent.contains("Chrome"); }
public ManagedStreamResponseWriter(GwtAtmosphereResourceImpl resource) { super(resource); String userAgent = resource.getAtmosphereResource().getRequest().getHeader("User-Agent"); chrome = userAgent != null && userAgent.contains("Chrome"); }
@Override public BroadcastAction filter(AtmosphereResource r, Object message, Object originalMessage) { AtmosphereRequest request = r.getRequest(); if ("true".equalsIgnoreCase(request.getHeader(X_ATMOSPHERE_TRACKMESSAGESIZE)) && message != null && String.class.isAssignableFrom(message.getClass())) { String msg = message.toString(); msg = msg.length() + "<|msg|>" + msg; return new BroadcastAction(BroadcastAction.ACTION.CONTINUE, msg); } return new BroadcastAction(BroadcastAction.ACTION.CONTINUE, message); }
@Override public void onResume(AtmosphereResourceEvent event) { if (log.isDebugEnabled()) { String transport = event.getResource().getRequest().getHeader("X-Atmosphere-Transport"); HttpServletRequest req = event.getResource().getRequest(); log.debug(String.format("Resuming the %s response from ip %s:%s", transport == null ? "websocket" : transport, req.getRemoteAddr(), req.getRemotePort())); } }
@Override public void onSuspend(AtmosphereResourceEvent event) { if (log.isDebugEnabled()) { String transport = event.getResource() .getRequest() .getHeader(HeaderConfig.X_ATMOSPHERE_TRANSPORT); HttpServletRequest req = event.getResource().getRequest(); log.debug(String.format("Suspending the %s response from ip %s:%s", transport == null ? "websocket" : transport, req.getRemoteAddr(), req.getRemotePort())); } }
@Override public void onSuspend(AtmosphereResourceEvent event) { if (log.isDebugEnabled()) { AtmosphereRequest atmosphereRequest = event.getResource().getRequest(); String transport = atmosphereRequest.getHeader(HeaderConfig.X_ATMOSPHERE_TRANSPORT); log.debug(String.format("Suspending the %s response from ip %s:%s", transport == null ? "websocket" : transport, atmosphereRequest.getRemoteAddr(), atmosphereRequest.getRemotePort())); } }
String uuid(AtmosphereResource r) { String s = (String) r.getRequest().getAttribute(SUSPENDED_ATMOSPHERE_RESOURCE_UUID); if (s != null) { return s; } s = r.getRequest().getHeader(HeaderConfig.X_ATMOSPHERE_TRACKING_ID); if (s != null && s != "0") { return s; } else { return r.uuid(); } }
@Override public void onDisconnect(AtmosphereResourceEvent event) { if (log.isDebugEnabled()) { String transport = event.getResource().getRequest().getHeader("X-Atmosphere-Transport"); HttpServletRequest req = event.getResource().getRequest(); log.debug(String.format("%s connection dropped from ip %s:%s", transport == null ? "websocket" : transport, req.getRemoteAddr(), req.getRemotePort())); } // It is possible that the application has already been destroyed, in which case // unregistration is no longer needed if (Application.get(applicationKey) != null) { findEventBus().unregisterConnection(event.getResource().uuid()); } }
@Override public void onBroadcast(AtmosphereResourceEvent event) { if (log.isDebugEnabled()) { log.debug("onBroadcast: {}", event.getMessage()); } // If we are using long-polling, resume the connection as soon as we get // an event. String transport = event.getResource() .getRequest() .getHeader(HeaderConfig.X_ATMOSPHERE_TRANSPORT); if (HeaderConfig.LONG_POLLING_TRANSPORT.equalsIgnoreCase(transport)) { Meteor meteor = Meteor.lookup(event.getResource().getRequest()); meteor.resume(); } }
@Override public void onRequest(AtmosphereResource resource) throws IOException { AtmosphereRequest req = resource.getRequest(); AtmosphereResponse res = resource.getResponse(); req.setCharacterEncoding("utf-8"); res.setCharacterEncoding("utf-8"); for (Entry<String, String> entry : AbstractSocketFactory.noCacheHeader().entrySet()) { res.setHeader(entry.getKey(), entry.getValue()); } for (Entry<String, String> entry : AbstractSocketFactory.corsHeader(req.getHeader("Origin")).entrySet()) { res.setHeader(entry.getKey(), entry.getValue()); } if (req.getMethod().equalsIgnoreCase("GET")) { String when = req.getParameter("when"); if (when.equals("open") || when.equals("poll")) { socketFactory.open(resource); } else if (when.equals("abort")) { socketFactory.abort(req.getParameter("id")); } } else if (req.getMethod().equalsIgnoreCase("POST")) { String raw = read(req.getReader()); socketFactory.fire(raw.startsWith("data=") ? raw.substring("data=".length()) : raw); } }
@Override public void onResume(AtmosphereResourceEvent event) { if (log.isDebugEnabled()) { AtmosphereRequest atmosphereRequest = event.getResource().getRequest(); String transport = atmosphereRequest.getHeader(HeaderConfig.X_ATMOSPHERE_TRANSPORT); log.debug(String.format("Resuming the %s response from ip %s:%s", transport == null ? "websocket" : transport, atmosphereRequest.getRemoteAddr(), atmosphereRequest.getRemotePort())); } EventBus eventBus = findEventBus(); if (eventBus.isWantAtmosphereNotifications()) { eventBus.post(new AtmosphereInternalEvent(AtmosphereInternalEvent.Type.Resume, event)); } }
public AtmosphereCoordinator route(AtmosphereRequest request, AtmosphereResponse response) throws IOException { final VertxAsyncIOWriter w = VertxAsyncIOWriter.class.cast(response.getAsyncIOWriter()); try { Action a = framework.doCometSupport(request, response); final AtmosphereResourceImpl impl = (AtmosphereResourceImpl) request.getAttribute(FrameworkConfig.ATMOSPHERE_RESOURCE); String transport = (String) request.getAttribute(FrameworkConfig.TRANSPORT_IN_USE); if (transport == null) { transport = request.getHeader(X_ATMOSPHERE_TRANSPORT); } logger.debug("Transport {} action {}", transport, a); final Action action = (Action) request.getAttribute(NettyCometSupport.SUSPEND); if (action != null && action.type() == Action.TYPE.SUSPEND && action.timeout() != -1) { final AtomicReference<Future<?>> f = new AtomicReference<>(); f.set(suspendTimer.scheduleAtFixedRate(new Runnable() { @Override public void run() { if (!w.isClosed() && (System.currentTimeMillis() - w.lastTick()) > action.timeout()) { asynchronousProcessor.endRequest(impl, false); f.get().cancel(true); } } }, action.timeout(), action.timeout(), TimeUnit.MILLISECONDS)); } } catch (Throwable e) { logger.error("Unable to process request", e); } return this; }
public StreamSocket(AtmosphereResource resource) { super(resource); this.isAndroid = isAndroid(resource.getRequest().getHeader("user-agent")); resource.getResponse().setContentType(streamContentType()); }
transport = request.getHeader(X_ATMOSPHERE_TRANSPORT);
@Override public void onBroadcast(AtmosphereResourceEvent event) { if (log.isDebugEnabled()) { log.debug("onBroadcast: {}", event.getMessage()); } // If we are using long-polling, resume the connection as soon as we get // an event. String transport = event.getResource() .getRequest() .getHeader(HeaderConfig.X_ATMOSPHERE_TRANSPORT); if (HeaderConfig.LONG_POLLING_TRANSPORT.equalsIgnoreCase(transport)) { Meteor meteor = Meteor.lookup(event.getResource().getRequest()); meteor.resume(); } EventBus eventBus = findEventBus(); if (eventBus.isWantAtmosphereNotifications()) { eventBus.post(new AtmosphereInternalEvent(AtmosphereInternalEvent.Type.Broadcast, event)); } }
@Override public void onDisconnect(AtmosphereResourceEvent event) { if (log.isDebugEnabled()) { AtmosphereRequest atmosphereRequest = event.getResource().getRequest(); String transport = atmosphereRequest.getHeader(HeaderConfig.X_ATMOSPHERE_TRANSPORT); log.debug(String.format("%s connection dropped from ip %s:%s", transport == null ? "websocket" : transport, atmosphereRequest.getRemoteAddr(), atmosphereRequest.getRemotePort())); } // It is possible that the application has already been destroyed, in which case // unregistration is no longer needed EventBus eventBus = findEventBus(); if (Application.get(applicationKey) != null) { eventBus.unregisterConnection(event.getResource().uuid()); } if (eventBus.isWantAtmosphereNotifications()) { eventBus.post(new AtmosphereInternalEvent(AtmosphereInternalEvent.Type.Disconnect, event)); } }
if ("GET".equals(request.getMethod()) && "WebSocket".equalsIgnoreCase(request.getHeader("Upgrade"))) { session = sessionFactory.getSession(sessionId);
if ("GET".equals(request.getMethod()) && "WebSocket".equalsIgnoreCase(request.getHeader("Upgrade"))) { session = sessionFactory.getSession(sessionId);