Exemplo n.º 1
0
  private void writeHeaders(
      StompHeaderAccessor headers, Message<byte[]> message, DataOutputStream output)
      throws IOException {

    Map<String, List<String>> stompHeaders = headers.toStompHeaderMap();
    if (SimpMessageType.HEARTBEAT.equals(headers.getMessageType())) {
      logger.trace("Encoded heartbeat");
    } else if (logger.isDebugEnabled()) {
      logger.debug("Encoded STOMP command=" + headers.getCommand() + " headers=" + stompHeaders);
    }
    for (Entry<String, List<String>> entry : stompHeaders.entrySet()) {
      byte[] key = getUtf8BytesEscapingIfNecessary(entry.getKey(), headers);
      for (String value : entry.getValue()) {
        output.write(key);
        output.write(COLON);
        output.write(getUtf8BytesEscapingIfNecessary(value, headers));
        output.write(LF);
      }
    }
    if ((headers.getCommand() == StompCommand.SEND)
        || (headers.getCommand() == StompCommand.MESSAGE)
        || (headers.getCommand() == StompCommand.ERROR)) {

      output.write("content-length:".getBytes(UTF8_CHARSET));
      output.write(Integer.toString(message.getPayload().length).getBytes(UTF8_CHARSET));
      output.write(LF);
    }
  }
Exemplo n.º 2
0
 private boolean isHeartbeat(StompHeaderAccessor headers) {
   return headers.getMessageType() == SimpMessageType.HEARTBEAT;
 }