Sha256: 9f3adfd8c7b82598e1785fac3ce97e6f96d514c14681722ffe03fff7e0ab5029
Contents?: true
Size: 887 Bytes
Versions: 56
Compression:
Stored size: 887 Bytes
Contents
# frozen_string_literal: true require "wisper" module DjiMqttConnect class TopicRepository include Wisper::Publisher def initialize(client) @client = client end private attr_reader :client def logger @logger ||= DjiMqttConnect.logger.tagged(self.class.name.sub(/Repository\z/, "")) end def listen_to_topic(topic, &block) logger.info("Listening to #{topic}...") client.mqtt_client.get(topic, &block) rescue Interrupt # Allow safe exiting after interrupts logger.info("Disconnected") end def publish_to_topic(topic, message, marshal:) logger.info("Publishing #{message.class} to #{topic}") message_data = marshal.dump(message) logger.debug(message_data) client.mqtt_client.publish(topic, message_data) broadcast(:publish_to_topic, topic, message) end end end
Version data entries
56 entries across 56 versions & 1 rubygems