An implementation of the Stomp protocol for Ruby. See:
- [STOMP 1.0, 1.1, and 1.2] (http://stomp.github.com/index.html)
hash = {
:hosts => [
# First connect is to remotehost1
{:login => "login1", :passcode => "passcode1", :host => "remotehost1", :port => 61612, :ssl => true},
# First failover connect is to remotehost2
{:login => "login2", :passcode => "passcode2", :host => "remotehost2", :port => 61613, :ssl => false},
],
# These are the default parameters and do not need to be set
:reliable => true, # reliable (use failover)
:initial_reconnect_delay => 0.01, # initial delay before reconnect (secs)
:max_reconnect_delay => 30.0, # max delay before reconnect
:use_exponential_back_off => true, # increase delay between reconnect attpempts
:back_off_multiplier => 2, # next delay multiplier
:max_reconnect_attempts => 0, # retry forever, use # for maximum attempts
:randomize => false, # do not radomize hosts hash before reconnect
:connect_timeout => 0, # Timeout for TCP/TLS connects, use # for max seconds
:connect_headers => {}, # user supplied CONNECT headers (req'd for Stomp 1.1+)
:parse_timeout => 5, # IO::select wait time on socket reads
:logger => nil, # user suplied callback logger instance
:dmh => false, # do not support multihomed IPV4 / IPV6 hosts during failover
:closed_check => true, # check first if closed in each protocol method
:hbser => false, # raise on heartbeat send exception
:stompconn => false, # Use STOMP instead of CONNECT
:usecrlf => false, # Use CRLF command and header line ends (1.2+)
:max_hbread_fails => 0, # Max HB read fails before retry. 0 => never retry
:max_hbrlck_fails => 0, # Max HB read lock obtain fails before retry. 0 => never retry
:fast_hbs_adjust => 0.0, # Fast heartbeat senders sleep adjustment, seconds, needed ...
# For fast heartbeat senders. 'fast' == YMMV. If not
# correct for your environment, expect unnecessary fail overs
:connread_timeout => 0, # Timeout during CONNECT for read of CONNECTED/ERROR, secs
:tcp_nodelay => true, # Turns on the TCP_NODELAY socket option; disables Nagle's algorithm
:start_timeout => 0, # Timeout around Stomp::Client initialization
:sslctx_newparm => nil, # Param for SSLContext.new
:ssl_post_conn_check => true, # Further verify broker identity
}
# for a client
client = Stomp::Client.new(hash)
# for a connection
connection = Stomp::Connection.new(hash)
client = Stomp::Client.new("user", "pass", "localhost", 61613)
client.publish("/queue/mine", "hello world!")
client.subscribe("/queue/mine") do |msg|
p msg
end
A Stomp URL must begin with 'stomp://' and can be in one of the following forms:
stomp://host:port
stomp://host.domain.tld:port
stomp://login:passcode@host:port
stomp://login:passcode@host.domain.tld:port
# e.g. c = Stomp::Client.new(urlstring)
options = "initialReconnectDelay=5000&randomize=false&useExponentialBackOff=false"
# remotehost1 uses SSL, remotehost2 doesn't
client = Stomp::Client.new("failover:(stomp+ssl://login1:passcode1@remotehost1:61612,stomp://login2:passcode2@remotehost2:61613)?#{options}")
client.publish("/queue/mine", "hello world!")
client.subscribe("/queue/mine") do |msg|
p msg
end
See CHANGELOG.rdoc for details.
- Gem version 1.4.1. Important SSL changes !: see CHANGELOG.md for details.
- Gem version 1.4.0. Note: Change sementics of :parse_timeout, see CHANGELOG.md for details.
- Gem version 1.3.5. Miscellaneous fixes, see CHANGELOG.rdoc for details.
- Gem version 1.3.4. Miscellaneous fixes, see CHANGELOG.rdoc for details.
- Gem version 1.3.3. Miscellaneous fixes, see CHANGELOG.rdoc for details.
- Gem version 1.3.2. Miscellaneous fixes, see changelog for details.
- Gem version 1.3.1. Bugfix for logging.
- Gem version 1.3.0. Added ERROR frame raising as exception, added anonymous connections, miscellaneous other fixes.
For changes in older versions see CHANGELOG.rdoc for details.
Up until March 2009 the project was maintained and primarily developed by Brian McCallister.
Contribution information:
First Author Date | (Commit Count) | Name / E-mail |
---|---|---|
2005-08-26 | (0023) | brianm / brianm@fd4e7336-3dff-0310-b68a-b6615a75f13b |
2006-03-16 | (0005) | jstrachan / jstrachan@fd4e7336-3dff-0310-b68a-b6615a75f13b |
2006-04-19 | (0001) | chirino / chirino@fd4e7336-3dff-0310-b68a-b6615a75f13b |
2007-05-09 | (0003) | kookster / kookster@fd4e7336-3dff-0310-b68a-b6615a75f13b |
2008-05-08 | (0016) | Glenn Rempe / glenn@rempe.us |
2009-02-03 | (0001) | Tony Garnock-Jones / tonyg@lshift.net |
2009-02-09 | (0003) | Marius Mathiesen / marius.mathiesen@gmail.com |
2009-02-13 | (0004) | Johan Sørensen / johan@johansorensen.com |
2009-11-17 | (0022) | Thiago Morello / thiago.morello@locaweb.com.br |
2009-11-22 | (0001) | unknown / katy@.(none) |
2009-12-18 | (0052) | Thiago Morello / morello@queroinfra32.fabrica.locaweb.com.br |
2009-12-25 | (0362) | gmallard / allard.guy.m@gmail.com |
2010-01-07 | (0007) | Rafael Rosa / rafael.rosa@locaweb.com.br |
2010-03-23 | (0024) | Guy M. Allard / allard.guy.m@gmail.com |
2010-04-01 | (0001) | Dmytro Shteflyuk / kpumuk@kpumuk.info |
2010-10-22 | (0001) | Neil Wilson / neil@aldur.co.uk |
2011-02-09 | (0001) | Dinesh Majrekar / dinesh.majrekar@advantage-interactive.com |
2011-04-15 | (0002) | Kiall Mac Innes / kiall@managedit.ie |
2011-04-29 | (0002) | Rob Skaggs / rob@pivotal-it.com |
2011-08-23 | (0003) | Tom May / tom@gist.com |
2011-08-24 | (0002) | Thiago Morello / morellon@gmail.com |
2011-09-11 | (0003) | Lucas Hills / info@lucashills.com |
2011-11-20 | (0002) | Chris Needham / chrisn303@gmail.com |
2011-12-11 | (0003) | R.I.Pienaar / rip@devco.net |
2011-12-13 | (0001) | tworker / tworker@onyx.ove.com |
2012-03-16 | (0001) | James Pearson / james@fearmediocrity.co.uk |
2012-05-10 | (0001) | Tommy Bishop / bishop.thomas@gmail.com |
2012-06-18 | (0002) | Jeremy Gailor / jeremy@infinitecube.com |
2013-02-20 | (0002) | JP Hastings-Spital / jphastings@gmail.com |
2013-03-14 | (0003) | glennr / glenn@siyelo.com |
2013-07-29 | (0021) | Ian Smith / ian.smith@mylookout.com |
2013-08-07 | (0001) | Hiram Chirino / hiram@hiramchirino.com |
2013-08-15 | (0005) | Ian Smith / ian.smith@lookout.com |
2013-08-22 | (0007) | Ian Smith / ismith@mit.edu |
2013-09-26 | (0001) | Orazio Cotroneo / orazio@we7.com |
2013-10-22 | (0001) | OrazioWE7 / orazio@we7.com |
2014-03-13 | (0001) | Richard Clamp / richardc@unixbeard.net |
2014-12-08 | (0001) | m4rCsi / m4rCsi@gmail.com |
2015-09-05 | (0001) | Michael Klishin / michael@novemberain.com |
2015-11-10 | (0002) | Patrick Sharp / psharp@numerex.com |
2016-02-03 | (0001) | Wayne Robinson / wayne.robinson@gmail.com |