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)
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
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..."
def __init__(self): ''' Constructor ''' self.client = Mosquitto(str(random.randint(100000, 999999)))
#!/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()
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()