Client for MQTT protocol
Project description
### Python MQTT client implementation.
### Installation
The latest stable version is available in the Python Package Index (PyPi) and can be installed using
```bash
pip install gmqtt
```
### Usage
#### Getting Started
Here is a very simple example that subscribes to the broker TOPIC topic and prints out the resulting messages:
```python
import asyncio
import os
import signal
import time
from gmqtt import Client as MQTTClient
# gmqtt also compatibility with uvloop
import uvloop
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
STOP = asyncio.Event()
def on_connect(client, flags, rc):
print('Connected')
client.subscribe('TEST/#', qos=0)
def on_message(client, topic, payload, qos):
print('RECV MSG:', payload)
def on_disconnect(client, packet):
print('Disconnected')
def on_subscribe(client, mid, qos):
print('SUBSCRIBED')
def ask_exit(*args):
STOP.set()
async def main(broker_host, token):
client = MQTTClient("client-id")
client.on_connect = on_connect
client.on_message = on_message
client.on_disconnect = on_disconnect
client.on_subscribe = on_subscribe
client.set_auth_credentials(token, None)
await client.connect(broker_host)
client.publish('TEST/TIME', str(time.time()), qos=1)
await STOP.wait()
await client.disconnect()
if __name__ == '__main__':
loop = asyncio.get_event_loop()
host = 'mqtt.flespi.io'
token = os.environ.get('FLESPI_TOKEN')
loop.add_signal_handler(signal.SIGINT, ask_exit)
loop.add_signal_handler(signal.SIGTERM, ask_exit)
loop.run_until_complete(main(host, token))
```
### Installation
The latest stable version is available in the Python Package Index (PyPi) and can be installed using
```bash
pip install gmqtt
```
### Usage
#### Getting Started
Here is a very simple example that subscribes to the broker TOPIC topic and prints out the resulting messages:
```python
import asyncio
import os
import signal
import time
from gmqtt import Client as MQTTClient
# gmqtt also compatibility with uvloop
import uvloop
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
STOP = asyncio.Event()
def on_connect(client, flags, rc):
print('Connected')
client.subscribe('TEST/#', qos=0)
def on_message(client, topic, payload, qos):
print('RECV MSG:', payload)
def on_disconnect(client, packet):
print('Disconnected')
def on_subscribe(client, mid, qos):
print('SUBSCRIBED')
def ask_exit(*args):
STOP.set()
async def main(broker_host, token):
client = MQTTClient("client-id")
client.on_connect = on_connect
client.on_message = on_message
client.on_disconnect = on_disconnect
client.on_subscribe = on_subscribe
client.set_auth_credentials(token, None)
await client.connect(broker_host)
client.publish('TEST/TIME', str(time.time()), qos=1)
await STOP.wait()
await client.disconnect()
if __name__ == '__main__':
loop = asyncio.get_event_loop()
host = 'mqtt.flespi.io'
token = os.environ.get('FLESPI_TOKEN')
loop.add_signal_handler(signal.SIGINT, ask_exit)
loop.add_signal_handler(signal.SIGTERM, ask_exit)
loop.run_until_complete(main(host, token))
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
gmqtt-0.0.10.tar.gz
(8.9 kB
view hashes)