Skip to main content

Mease: Twisted/Autobahn websocket server with an easy callback registry

Project description

https://badge.fury.io/py/mease.png https://travis-ci.org/florianpaquet/mease.png?branch=master

Websocket server using Twisted/Autobahn with an easy to use callback registry mechanism

See django-mease, django-mease-example or flask-mease-example for working examples.

Installation

Use pip to install the latest mease version :

pip install mease

mease comes with two backends :

Redis

To use Redis backend, install these dependencies :

sudo apt-get install redis-server
pip install redis

Refer to the Redis documentation to configure your server.

RabbitMQ

To use RabbitMQ backend, install these dependencies :

sudo apt-get install rabbitmq-server
pip install kombu

Refer to the RabbitMQ documentation to configure your server.

Quickstart

Create a file where you can write your callbacks and register them :

from mease import Mease
from mease.backends.redis import RedisBackend
# OR from mease.backends.rabbitmq import RabbitMQBackend

from uuid import uuid4

mease = Mease(RedisBackend)

@mease.opener
def example_opener(client, clients_list):
    # Do stuff on client connection
    client.storage['uuid'] = str(uuid4())

@mease.closer
def example_closer(client, clients_list):
    # Do stuff on client disconnection
    print("Client {uuid} disconnected".format(uuid=client.storage.get('uuid')))

@mease.receiver(json=True)
def example_receiver(client, clients_list, message):
    # Do stuff on incoming client message
    pass

@mease.sender(routing='mease.demo')
def example_sender(routing, clients_list, my_tuple):
    # Do stuff on outgoing message
    pass

if __name__ == '__main__':
    # Start websocket server
    mease.run_websocket_server()

Remember to run the websocket server from the mease instance where you registered your callbacks.

In your code, you can now call the mease publish method to send a message to websocket clients :

from mease import Mease
from mease.backends.redis import RedisBackend

mease = Mease(RedisBackend)

# ...

mease.publish('mease.demo', my_tuple=("Hello", "World"))

That’s it ! You are now able to send messages from your web server to your websocket server in a cool way !

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mease-0.2.0.tar.gz (8.8 kB view details)

Uploaded Source

File details

Details for the file mease-0.2.0.tar.gz.

File metadata

  • Download URL: mease-0.2.0.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for mease-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d65dd1cc43233e3244739c4d63d0facb0ead3e3d9ee46b9cd1a9a76f2d26caa0
MD5 29ca399c5708bd8e3e2e793243a4303c
BLAKE2b-256 fb2176aa475cc8d0d62267d103d235bd3a69f981ce2508d19e998e4cccec93d1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page