Giter Club home page Giter Club logo

stomp's Introduction

README

Overview

An implementation of the Stomp protocol for Ruby. See:

Hash Login Example Usage (this is the recommended login technique):

hash = {
  hosts: [
    # First connect is to remotehost1
    { login: 'login1', passcode: 'passcode1', host: 'remotehost1', port: 61_612, ssl: true },
    # First failover connect is to remotehost2
    { login: 'login2', passcode: 'passcode2', host: 'remotehost2', port: 61_613, 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
  nto_cmd_read: true,              # No timeout on COMMAND read
}

# for a client
client = Stomp::Client.new(hash)

# for a connection
connection = Stomp::Connection.new(hash)

Positional Parameter Usage:

client = Stomp::Client.new("user", "pass", "localhost", 61613)
client.publish("/queue/mine", "hello world!")
client.subscribe("/queue/mine") do |msg|
    p msg
end

Stomp URL Usage:

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:[email protected]:port

# e.g. c = Stomp::Client.new(urlstring)

Failover + SSL Example URL Usage:

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

New:

See CHANGELOG.rdoc for details.

  • Gem version 1.4.9. Fix two issues, enhance debugging and examples.
  • Gem version 1.4.8. Fix missed merge in 1.4.7 release.
  • Gem version 1.4.7. Add support for text SSL certs. Do not use, use 1.4.8 instead.
  • Gem version 1.4.6. Fix version 1.4.5 which breaks JRuby support.
  • Gem version 1.4.5. JRuby broken here. Use is not recommended.
  • Gem version 1.4.4. Miscellaneous fixes, see CHANGELOG.md for details.
  • Gem version 1.4.3. Fix broken install. Do not try to install 1.4.2.
  • Gem version 1.4.2. Fix memory leak, and others !: see CHANGELOG.md 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.md for details.

For changes in older versions see CHANGELOG.rdoc for details.

Historical Information:

Up until March 2009 the project was maintained and primarily developed by Brian McCallister.

Source Code and Project URLs:

Source Code and Project

Stomp Protocol Information:

Protocol Information

Contributors

See CONTRIBUTORS.md.

stomp's People

Contributors

2potatocakes avatar chirino avatar chrisn avatar glennr avatar gmallard avatar grempe avatar ismith avatar jphastings avatar js avatar kiall avatar krsibbald avatar merichar avatar michaelklishin avatar morellon avatar neilw avatar oraziocw avatar psharpnumerex avatar raducu-deaconu-visma avatar reidmv avatar richardc avatar ripienaar avatar rrosenblum avatar shortcut-kinder avatar smitp avatar thbishop avatar thiagoxvo avatar tommay avatar tonyg avatar traylenator avatar waynerobinson avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.