class MQTTRpc::Client

Public Class Methods

new(options = {}, timeout = 10) click to toggle source
# File lib/mqtt_rpc/client.rb, line 5
def initialize(options = {}, timeout = 10)
  @options = options
  @timeout = timeout
end

Public Instance Methods

publish(publish_topic, message, subscribe_topic) click to toggle source
# File lib/mqtt_rpc/client.rb, line 10
def publish(publish_topic, message, subscribe_topic)
  ready

  @subscribe_connect.subscribe(subscribe_topic)
  @publish_connect.publish(publish_topic, message)
  begin
    Timeout.timeout(@timeout) do
      @subscribe_connect.get do |_topic, payload|
        @payload = payload
        break
      end
    end
  rescue
    raise TimeoutException
  ensure
    destroy
  end

  @payload
end

Private Instance Methods

connect() click to toggle source
# File lib/mqtt_rpc/client.rb, line 33
def connect
  MQTT::Client.connect(@options)
end
destroy() click to toggle source
# File lib/mqtt_rpc/client.rb, line 42
def destroy
  @subscribe_connect.disconnect
  @publish_connect.disconnect
end
ready() click to toggle source
# File lib/mqtt_rpc/client.rb, line 37
def ready
  @subscribe_connect = connect
  @publish_connect = connect
end