Implements Stomp (docs.codehaus.org/display/STOMP/Protocol).
module StompClient
include EM::Protocols::Stomp
def connection_completed
connect :login => 'guest', :passcode => 'guest'
end
def receive_msg msg
if msg.command == "CONNECTED"
subscribe '/some/topic'
else
p ['got a message', msg]
puts msg.body
end
end
end
EM.run{
EM.connect 'localhost', 61613, StompClient
}
ACK command, for acknowledging receipt of messages
module StompClient
include EM::P::Stomp
def connection_completed
connect :login => 'guest', :passcode => 'guest'
# subscribe with ack mode
subscribe '/some/topic', true
end
def receive_msg msg
if msg.command == "MESSAGE"
ack msg.headers['message-id']
puts msg.body
end
end
end
# File lib/em/protocols/stomp.rb, line 193 def ack msgid send_frame "ACK", 'message-id'=> msgid end
CONNECT command, for authentication
connect :login => 'guest', :passcode => 'guest'
# File lib/em/protocols/stomp.rb, line 154 def connect parms={} send_frame "CONNECT", parms end
Invoked with an incoming Stomp::Message received from the STOMP server
# File lib/em/protocols/stomp.rb, line 146 def receive_msg msg # stub, overwrite this in your handler end
SEND command, for publishing messages to a topic
send '/topic/name', 'some message here'
# File lib/em/protocols/stomp.rb, line 162 def send destination, body, parms={} send_frame "SEND", parms.merge( :destination=>destination ), body.to_s end
Generated with the Darkfish Rdoc Generator 2.