/** * Dispatch to request/response to the {@link org.atmosphere.runtime.AsyncSupport} implementation as it was a normal HTTP request. * * @param request a {@link AtmosphereRequest} * @param r a {@link AtmosphereResponse} */ public final void dispatch(WebSocket webSocket, final AtmosphereRequest request, final AtmosphereResponse r) { if (request == null) return; try { framework.doCometSupport(request, r); } catch (Throwable e) { logger.warn("Failed invoking AtmosphereFramework.doCometSupport()", e); webSocketProtocol.onError(webSocket, new WebSocketException(e, new AtmosphereResponseImpl.Builder() .request(request) .status(500) .statusMessage("Server Error").build())); return; } if (r.getStatus() >= 400) { webSocketProtocol.onError(webSocket, new WebSocketException("Status code higher or equal than 400", r)); } }