lib/client/utils.rb in stomp-1.2.10 vs lib/client/utils.rb in stomp-1.2.11
- old
+ new
@@ -155,18 +155,21 @@
@replay_messages_by_txn = {}
@listener_thread = Thread.start do
while true
message = @connection.receive
- if message # AMQ specific?, nil message on multiple reconnects
- if message.command == Stomp::CMD_MESSAGE
- if listener = find_listener(message)
- listener.call(message)
- end
- elsif message.command == Stomp::CMD_RECEIPT
- if listener = @receipt_listeners[message.headers['receipt-id']]
- listener.call(message)
- end
+ # AMQ specific behavior
+ if message.nil? && (!@reliable)
+ raise Stomp::Error::NilMessageError
+ end
+ # OK, we have some real data
+ if message.command == Stomp::CMD_MESSAGE
+ if listener = find_listener(message)
+ listener.call(message)
+ end
+ elsif message.command == Stomp::CMD_RECEIPT
+ if listener = @receipt_listeners[message.headers['receipt-id']]
+ listener.call(message)
end
end
end # while true
end
end # method start_listeners