Sha256: a338fad4e8defefd8e2ef2676e77113b6d03f5487add6cec274cb814c49d8008

Contents?: true

Size: 1.69 KB

Versions: 1

Compression:

Stored size: 1.69 KB

Contents

#!/usr/bin/env ruby
require 'rubygems'
require 'etc'
require 'yaml'
require 'daemons/daemonize'
require 'stomp_server_ng'
require 'optparse'
require 'logger'

$STOMP_SERVER = true

$HTTP_ENABLE = false
if $HTTP_ENABLE
  require 'mongrel'
  require 'stomp_server/protocols/http'
end
#
# Use epoll if available.
#
EventMachine::epoll
#
# Run.
#
EventMachine::run do

  ## Get the configuration and initialize the stomp engine
  config = StompServer::Configurator.new
  stomp = StompServer::Run.new(config.opts)
  stomp.start

  log = Logger.new(STDOUT)
  log.level = Logger::DEBUG

  # Might want to uncomment this if you are sending large files
  #EventMachine::add_periodic_timer 10, proc {GC.start}
  
  log.debug "Client authorization enabled" if config.opts[:auth]

  ## Start protocol handlers

  log.debug "Stomp protocol handler starting on #{config.opts[:host]} port #{config.opts[:port]}"
  EventMachine.start_server(config.opts[:host], 
      config.opts[:port], 
      StompServer::Protocols::Stomp, 
        stomp.auth_required,    # *args: arg[0] 
        stomp.queue_manager,    # *args: arg[1] 
        stomp.topic_manager,    # *args: arg[2] 
        stomp.stompauth,        # *args: arg[3] 
        config.opts             # Options hash
      )

  # TODO: any http testing and protocol handler changes required.
  if $HTTP_ENABLE
    log.debug "Http protocol handler starting on #{config.opts[:host]} port 8080"
    EventMachine.start_server(config.opts[:host], 8080, StompServer::Protocols::Http) {|s| s.instance_eval {
        @@auth_required=stomp.auth_required
        @@queue_manager=stomp.queue_manager
        @@topic_manager=stomp.topic_manager
        @@stompauth = stomp.stompauth
      }
    }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
stompserver_ng-1.0.6 bin/stompserver_ng