Method: MQTT::Proxy#initialize

Defined in:
lib/mqtt/proxy.rb

#initialize(args = {}) ⇒ Proxy

Create a new MQTT Proxy instance.

Possible argument keys:

:local_host      Address to bind listening socket to.
:local_port      Port to bind listening socket to.
:server_host     Address of upstream server to send packets upstream to.
:server_port     Port of upstream server to send packets upstream to.
:select_timeout  Time in seconds before disconnecting a connection.
:logger          Ruby Logger object to send informational messages to.

NOTE: be careful not to connect to yourself!



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/mqtt/proxy.rb', line 40

def initialize(args = {})
  @local_host = args[:local_host] || '0.0.0.0'
  @local_port = args[:local_port] || MQTT::DEFAULT_PORT
  @server_host = args[:server_host]
  @server_port = args[:server_port] || 18_830
  @select_timeout = args[:select_timeout] || 60

  # Setup a logger
  @logger = args[:logger]
  if @logger.nil?
    @logger = Logger.new(STDOUT)
    @logger.level = Logger::INFO
  end

  # Default is not to have any filters
  @client_filter = nil
  @server_filter = nil

  # Create TCP server socket
  @server = TCPServer.open(@local_host, @local_port)
  @logger.info "MQTT::Proxy listening on #{@local_host}:#{@local_port}"
end