Package org.vertx.java.core.http

Examples of org.vertx.java.core.http.HttpServerRequest


   *
   * @see "Manager.prototype.handleClient"
   * @param clientData
   */
  public void handle(ClientData clientData) {
    HttpServerRequest request = clientData.getRequest();
    Settings settings = manager.getSettings();

    // handle sync disconnect xhrs
    MultiMap params = clientData.getParams();
    if (params != null && params.get("disconnect") != null) {
      Transport transport = manager.transport(clientData.getId());
      if (transport != null && transport.isOpen()) {
        transport.onForcedDisconnect();
      } else {
        // this.store.publish('disconnect-force:' + data.id);
      }
      request.response().setStatusCode(200);
      request.response().end();
      request.response().close();
      return;
    }

    if (!settings.getTransports().contains(clientData.getTransport())) {
      String message = "unknown transport: '" + clientData.getTransport() + '"';
      log.warn(message);
      manager.writeError(request, 500, message);
      return;
    }

    // handle invalid websocket requests
    if(clientData.getTransport().equals("websocket")) {
      String sessionId = clientData.getId();
      // sessionId에 해당하는 Transport가 이미 있다면... Invalid
      if(sessionId != null && manager.transport(sessionId) != null) {
        log.debug("[Manager] Invalid websocket request. " + clientData.getPath());
        ServerWebSocket socket = clientData.getSocket();
        if(socket != null) {
          socket.close();
        }
        if(request != null) {
          request.response().setStatusCode(200);
          request.response().end();
          request.response().close();
        }
        return;
      }
    }

    Transport transport = manager.newTransport(clientData);
    HandshakeData handshakeData = manager.handshakeData(clientData.getId());
    if (transport.isDisconnected()) {
      // failed during transport setup
      request.response().end();
      request.response().close();
      return;
    }

    if (handshakeData == null) {
      if (transport.isOpen()) {
View Full Code Here


  public StaticHandler(Manager manager) {
    this.manager = manager;
  }

  public void handle(ClientData clientData) {
    HttpServerRequest req = clientData.getRequest();
    HttpServerResponse res = req.response();
    String requestedFileName = clientData.getPath();
    String resourceRootDir = getRootDir();

    File rootDir = new File(requestedFileName);
    if(!rootDir.exists()) {
View Full Code Here

   *
   * @see "Manager.prototype.handleHandshake"
   * @param clientData
   */
  public void handle(final ClientData clientData) {
    final HttpServerRequest request = clientData.getRequest();
    final Settings settings = manager.getSettings();

    log.trace("In handshake handler");
    MultiMap reqHeaders = request.headers();
    final MultiMap resHeaders = request.response().headers();
    String reqOrigin = reqHeaders.get("Origin");
    resHeaders.add("CONTENT_TYPE", "text/plain; charset=UTF-8");

    if (!this.verifyOrigin(reqOrigin)) {
      manager.writeError(request, 403, "handshake bad origin");
      return;
    }

    final HandshakeData handshakeData = new HandshakeData(clientData);

    if (reqOrigin != null) {
      // https://developer.mozilla.org/En/HTTP_Access_Control
      resHeaders.add("Access-Control-Allow-Origin", reqOrigin);
      resHeaders.add("Access-Control-Allow-Credentials", "true");
    }

    authorize(request, handshakeData, new AuthorizationCallback() {
      public void handle(Exception e, boolean isAuthorized) {
        if(e != null) {
          manager.writeError(request, e);
          return;
        }

        if(isAuthorized) {
          String id = UUID.randomUUID().toString();
          String result = id + ":"
              + (settings.isHeartbeats() ? settings.getHeartbeatTimeout() : "") + ":"
              + settings.getCloseTimeout() + ":"
              + settings.getTransports();

          request.response().setStatusCode(200);
          String jsonp = clientData.getParams().get("jsonp");
          if(jsonp != null) {
            result = "io.j[" + jsonp + "](\"" + result + "\");";
            resHeaders.add("Content-Type", "application/javascript");
          }
          request.response().end(result);

          manager.getHandshaken().put(id, handshakeData);
          // self.store.publish('handshake', id, newData || handshakeData);
          log.info("handshake authorized " + id);
        } else {
View Full Code Here

TOP

Related Classes of org.vertx.java.core.http.HttpServerRequest

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.