Class: MQTTRpc::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/mqtt_rpc/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}, timeout = 10) ⇒ Client

Returns a new instance of Client.



5
6
7
8
# File 'lib/mqtt_rpc/client.rb', line 5

def initialize(options = {}, timeout = 10)
  @options = options
  @timeout = timeout
end

Instance Method Details

#publish(publish_topic, message, subscribe_topic) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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