Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. require 'paho-mqtt'
  2.  
  3. class MQTTService
  4. def initialize
  5. @client = PahoMqtt::Client.new(
  6. host: "host_name",
  7. port: "8883",
  8. persistent: true,
  9. username: "username",
  10. password: "password"
  11. )
  12.  
  13. certificate_path = "/etc/mosquitto/ca_certificates/server.crt"
  14. key_path = "/etc/mosquitto/ca_certificates/server.key"
  15.  
  16. @client.config_ssl_context(certificate_path, key_path)
  17. register_callbacks
  18. end
  19.  
  20. def connect
  21. @client.connect
  22. end
  23.  
  24. def subscribe(topic, standard=1)
  25. @client.subscribe([topic, standard])
  26. end
  27.  
  28. def publish(topic, message, retain=false, standard=1)
  29. @client.publish(topic, message, retain, standard)
  30. end
  31.  
  32. def register_connection_callback
  33. @client.on_connack = proc { puts "Successfully Connected" }
  34. end
  35.  
  36. def register_new_message_received_callback
  37. @client.on_message do |packet|
  38. puts "New message received on topic: #{packet.topic}\n>>>#{packet.payload}"
  39. end
  40. end
  41.  
  42. def register_publication_callback
  43. waiting_puback = true
  44. @client.on_puback do
  45. waiting_puback = false
  46. puts "Message Acknowledged"
  47. end
  48. end
  49.  
  50. def register_message_fetched_callback
  51. message_counter = 0
  52. @client.on_message do |message|
  53. puts "Message recieved on topic: #{message.topic}\n>>> #{message.payload}"
  54. message_counter += 1
  55. end
  56. end
  57.  
  58. def register_subscription_callback
  59. waiting_suback = true
  60. @client.on_suback do
  61. waiting_suback = false
  62. puts "Subscribed"
  63. end
  64. end
  65.  
  66. def register_callbacks
  67. register_subscription_callback
  68. register_message_fetched_callback
  69. register_publication_callback
  70. register_new_message_received_callback
  71. register_connection_callback
  72. end
  73.  
  74.  
  75. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement