def setup(self, hostname, port):
        mq = Mosquitto(self.name)
        mq.connect(hostname, port, 60)
        mq.subscribe('chat')
        mq.subscribe('rates/AUDUSD')
        mq.subscribe('rates/USDCHF')
        mq.subscribe('rates/EURUSD')
        mq.subscribe('rates/PLNUSD')
        mq.subscribe('rates/GBPUSD')
        mq.on_message = self.message
        mq.on_connect = connect_cb
        mq.on_subscribe = subscribe_cb
        mq.on_unsubscribe = unsubscribe_cb
        mq.on_publish = publish_cb
        #mq.on_message = message_cb
        mq.on_disconnect = disconnect_cb

        self.mq = mq

        Clock.schedule_interval(lambda *x: mq.loop(), .01)
示例#2
0
    def __init__(self, beaver_config, logger=None):
        """
        Mosquitto client initilization. Once this this transport is initialized
        it has invoked a connection to the server
        """
        super(MqttTransport, self).__init__(beaver_config, logger=logger)

        self._client = Mosquitto(beaver_config.get('mqtt_clientid'),
                                 clean_session=True)
        self._topic = beaver_config.get('mqtt_topic')
        self._client.connect(host=beaver_config.get('mqtt_hostname'),
                             port=beaver_config.get('mqtt_port'),
                             keepalive=beaver_config.get('mqtt_keepalive'))

        def on_disconnect(mosq, obj, rc):
            if rc == 0:
                logger.debug('Mosquitto has successfully disconnected')
            else:
                logger.debug('Mosquitto unexpectedly disconnected')

        self._client.on_disconnect = on_disconnect
示例#3
0
def main():
    """start mqtt server and subscribe the topic"""
    # check the number of arguments
    if len(argv) != 6:
        print "usage: %s [hostname] [port] [keepalive] [client_id] [topic]" % argv[
            0]
        exit(1)

    try:
        mqtt_client = Mosquitto(argv[4])

        # set callback
        mqtt_client.on_message = cb_on_message

        # connect to MQTT broker
        # client.connect(hostname, port=1883, keepalive=60)
        mqtt_client.connect(argv[1], argv[2], int(argv[3]))

        # subscribe the topic
        mqtt_client.subscribe(argv[5])
        print "%s subscribing topic '%s' from %s:%s" % (argv[4], argv[5],
                                                        argv[1], argv[2])

        while True:
            # call loop method frequently
            # client.loop(timeout=-1); 0 to return immediately; -1 to return
            # after 1 second.
            result = mqtt_client.loop()
            if result != 0:
                # rc != 0; loop failed
                print "Loop failed (%s), disconnecting..." % result
                mqtt_client.disconnect()
                break

    except KeyboardInterrupt:
        # disconnect from the broker
        mqtt_client.disconnect()
        print "Disconnected..."
示例#4
0
 def __init__(self):
     '''
     Constructor
     '''
     self.client = Mosquitto(str(random.randint(100000, 999999)))
示例#5
0
#!/usr/bin/python
from mosquitto import Mosquitto

publish_key = "demo"
subscribe_key = "demo"
channel_name = "F"
client_uuid = "2fb96def5"
mqtt_hostname = "mqtt.pubnub.com"
mqtt_connect = publish_key + "/" + subscribe_key + "/" + client_uuid
mqtt_topic = publish_key + "/" + subscribe_key + "/" + channel_name
mosq_object = Mosquitto(mqtt_connect)


def on_message(mosq, obj, msg):
    print(msg.payload, msg.topic)


mosq_object.on_message = on_message
mosq_object.connect(mqtt_hostname)
mosq_object.publish(mqtt_topic, "Hello World!")
mosq_object.subscribe(mqtt_topic)
mosq_object.loop_forever()
示例#6
0
        collection = [
            get('Bid'),
            get('Ask'),
            get('High'),
            get('Low'),
            get('Direction'),
            get('Last'),
        ]

        message = '/'.join(
            (c[0].childNodes[0].nodeValue for c in collection)).encode('utf-8')

        print message
        if dates.get(symbol, None) != collection[-1]:
            mq.publish('rates/%s' % symbol, message, qos=1, retain=True)
            dates[symbol] = collection[-1]


if __name__ == '__main__':
    args = parser.parse_args()
    mq = Mosquitto('fxrates')
    mq.connect(args.hostname, args.port, 60)
    try:
        while True:
            sleep(.1)
            getFXRate(mq)
    except KeyboardInterrupt:
        print 'closing...'
        mq.disconnect()