コード例 #1
0
  @Override
  public void connect(String username, String passcode, String clientID) throws Exception {
    ClientStompFrame frame = factory.newFrame(CONNECT_COMMAND);
    frame.addHeader(ACCEPT_HEADER, "1.2");
    frame.addHeader(HOST_HEADER, "localhost");
    frame.addHeader(CLIENT_ID_HEADER, clientID);

    if (username != null) {
      frame.addHeader(LOGIN_HEADER, username);
      frame.addHeader(PASSCODE_HEADER, passcode);
    }

    ClientStompFrame response = this.sendFrame(frame);

    if (response.getCommand().equals(CONNECTED_COMMAND)) {
      String version = response.getHeader(VERSION_HEADER);
      if (!version.equals("1.2")) throw new IllegalStateException("incorrect version!");

      this.username = username;
      this.passcode = passcode;
      this.connected = true;
    } else {
      connected = false;
    }
  }
コード例 #2
0
  @Override
  public void disconnect() throws IOException, InterruptedException {
    stopPinger();

    ClientStompFrame frame = factory.newFrame(DISCONNECT_COMMAND);
    frame.addHeader("receipt", "1");

    ClientStompFrame result = this.sendFrame(frame);

    if (result == null
        || (!"RECEIPT".equals(result.getCommand()))
        || (!"1".equals(result.getHeader("receipt-id")))) {
      throw new IOException("Disconnect failed! " + result);
    }

    close();

    connected = false;
  }