@Override
    public void afterConnected(final StompSession session, StompHeaders connectedHeaders) {
      this.connectLatch.countDown();
      session.setAutoReceipt(true);
      session
          .subscribe(
              "/topic/greeting",
              new StompFrameHandler() {
                @Override
                public Type getPayloadType(StompHeaders headers) {
                  return String.class;
                }

                @Override
                public void handleFrame(StompHeaders headers, Object payload) {
                  if (messageCount.incrementAndGet() == expectedMessageCount) {
                    messageLatch.countDown();
                    disconnectLatch.countDown();
                    session.disconnect();
                  }
                }
              })
          .addReceiptTask(
              new Runnable() {
                @Override
                public void run() {
                  subscribeLatch.countDown();
                }
              });
    }