XhrTransport(VertxInternal vertx,RouteMatcher rm, String basePath, final Map<String, Session> sessions, final JsonObject config,
final Handler<SockJSSocket> sockHandler) {
super(vertx, sessions, config);
String xhrBase = basePath + COMMON_PATH_ELEMENT_RE;
String xhrRE = xhrBase + "xhr";
String xhrStreamRE = xhrBase + "xhr_streaming";
Handler<HttpServerRequest> xhrOptionsHandler = createCORSOptionsHandler(config, "OPTIONS, POST");
rm.optionsWithRegEx(xhrRE, xhrOptionsHandler);
rm.optionsWithRegEx(xhrStreamRE, xhrOptionsHandler);
registerHandler(rm, sockHandler, xhrRE, false, config);
registerHandler(rm, sockHandler, xhrStreamRE, true, config);
String xhrSendRE = basePath + COMMON_PATH_ELEMENT_RE + "xhr_send";
rm.optionsWithRegEx(xhrSendRE, xhrOptionsHandler);
rm.postWithRegEx(xhrSendRE, new Handler<HttpServerRequest>() {
public void handle(final HttpServerRequest req) {
if (log.isTraceEnabled()) log.trace("XHR send, post, " + req.uri);
String sessionID = req.params().get("param0");
final Session session = sessions.get(sessionID);
if (session != null) {
handleSend(req, session);
} else {
req.response.statusCode = 404;
setJSESSIONID(config, req);
req.response.end();
}
}
});
}