The CowMQ is a simple client-server protocol over MQTT for Python
pip install CowMQ
config = {}
config['cow_mq_ip'] = 'mqtt_borker_ip'
config['cow_mq_port'] = 'mqtt_broker_port
config['cow_mq_username'] = 'mqtt_username' # option
config['cow_mq_password'] = 'mqtt_password' # option
config['cow_mq_tls_ca_certs'] = None # option
config['cow_mq_tls_certfile'] = None # option
config['cow_mq_tls_keyfile'] = None # option
from cow_mq.server import Server as CowMQServer
cow_server = CowMQServer(config, 'server_domain')
@cow_server.route('/version')
def version(payload):
data = json.dumps({'version': '0.0.1'})
return data.encode('utf-8')
from views.api_account import api_account_bp
cow_server.register_blueprint(api_account_bp, url_prefix='/account')
api_account.py
from cow_mq.blueprint import Blueprint as CowMQBlueprint
api_account_bp = CowMQBlueprint('api_account', __name__)
@api_account_bp.route("/sign_in")
def sign_in(payload):
data = json.dumps({'token': 'abcde123456'})
return data.encode('utf-8')
from cow_mq.client import Client as CowMQClient
cow_client = CowMQClient(config)
def version_callback(domain, rule, rsp_data):
print('version async rsp: {}'.format(rsp_data))
data = json.dumps({'type': 1})
cow_client.async_send('server_domain', '/version', data.encode('utf-8'), version_callback)
def on_cow_mq_server_connect(domain):
print('on_cow_mq_server_connect: {}'.format(domain))
def on_cow_mq_server_disconnect(domain):
print('on_cow_mq_server_disconnect: {}'.format(domain))
cow_client.register_server_connected('server_domain')
cow_client.on_server_connect = on_cow_mq_server_connect
cow_client.on_server_disconnect = on_cow_mq_server_disconnect
- Duncan Hsu [email protected]
CowMQ is available under the Apache License 2.0.