class EventMachine::MQTT::Server
Attributes
address[RW]
logger[RW]
port[RW]
Public Class Methods
new(args=[])
click to toggle source
# File lib/em/mqtt/server.rb, line 8 def initialize(args=[]) # Set defaults self.address = "0.0.0.0" self.port = MQTT::DEFAULT_PORT self.logger = Logger.new(STDOUT) self.logger.level = Logger::INFO parse(args) unless args.empty? end
Public Instance Methods
parse(args)
click to toggle source
# File lib/em/mqtt/server.rb, line 17 def parse(args) OptionParser.new("", 24, ' ') do |opts| opts.banner = "Usage: #{File.basename $0} [options]" opts.separator "" opts.separator "Options:" opts.on("-D", "--debug", "turn on debug logging") do self.logger.level = Logger::DEBUG end opts.on("-a", "--address [HOST]", "bind to HOST address (default: #{address})") do |address| self.address = address end opts.on("-p", "--port [PORT]", "port number to run on (default: #{port})") do |port| self.port = port end opts.on_tail("-h", "--help", "show this message") do puts opts exit end opts.on_tail("--version", "show version") do puts EventMachine::MQTT::VERSION exit end opts.parse!(args) end end
run()
click to toggle source
# File lib/em/mqtt/server.rb, line 50 def run EventMachine.run do # hit Control + C to stop Signal.trap("INT") { EventMachine.stop } Signal.trap("TERM") { EventMachine.stop } logger.info("Starting MQTT server on #{address}:#{port}") EventMachine.start_server(address, port, EventMachine::MQTT::ServerConnection, logger) end end