def ack(message_or_ack_id, headers = {})
raise Stomp::Error::NoCurrentConnection if @closed_check && closed?
raise Stomp::Error::ProtocolErrorEmptyHeaderKey if headers.has_key?("")
raise Stomp::Error::ProtocolErrorEmptyHeaderValue if @protocol == Stomp::SPL_10 && headers.has_value?("")
raise Stomp::Error::MessageIDRequiredError if message_or_ack_id.nil? || message_or_ack_id == ""
headers = headers.symbolize_keys
case @protocol
when Stomp::SPL_12
headers[:id] = message_or_ack_id
when Stomp::SPL_11
headers['message-id''message-id'] = message_or_ack_id
raise Stomp::Error::SubscriptionRequiredError unless headers[:subscription]
else
headers['message-id''message-id'] = message_or_ack_id
end
_headerCheck(headers)
slog(:on_ack, log_params, headers)
transmit(Stomp::CMD_ACK, headers)
end