Skip to main content

CometD client for asyncio

Project description

aiocometd
=========

.. image:: https://badge.fury.io/py/aiocometd.svg
:target: https://badge.fury.io/py/aiocometd
:alt: PyPI package

.. image:: https://readthedocs.org/projects/aiocometd/badge/?version=latest
:target: http://aiocometd.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status

.. image:: https://travis-ci.org/robertmrk/aiocometd.svg?branch=develop
:target: https://travis-ci.org/robertmrk/aiocometd
:alt: Build status

.. image:: https://coveralls.io/repos/github/robertmrk/aiocometd/badge.svg
:target: https://coveralls.io/github/robertmrk/aiocometd
:alt: Coverage

.. image:: https://img.shields.io/badge/License-MIT-yellow.svg
:target: https://opensource.org/licenses/MIT
:alt: MIT license

aiocometd is a CometD_ client built using asyncio_, implementing the Bayeux_
protocol.

CometD_ is a scalable WebSocket and HTTP based event and message routing bus.
CometD_ makes use of WebSocket and HTTP push technologies known as Comet_ to
provide low-latency data from the server to browsers and client applications.

Features
--------

- Supported transports:
- ``long-polling``
- ``websocket``
- Automatic reconnection after network failures
- Extensions

Usage
-----

.. code-block:: python

import asyncio

from aiocometd import Client

async def chat():
nickname = "John"

# connect to the server
async with Client("http://example.com/cometd") as client:

# subscribe to channels to receive chat messages and
# notifications about new members
await client.subscribe("/chat/demo")
await client.subscribe("/members/demo")

# send initial message
await client.publish("/chat/demo", {
"user": nickname,
"membership": "join",
"chat": nickname + " has joined"
})
# add the user to the chat room's members
await client.publish("/service/members", {
"user": nickname,
"room": "/chat/demo"
})

# listen for incoming messages
async for message in client:
if message["channel"] == "/chat/demo":
data = message["data"]
print(f"{data['user']}: {data['chat']}")

if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(chat())


.. include:: docs/source/global.rst

Changelog
=========

0.2.2 (2018-04-24)
------------------

- Fix documentation typos
- Improve examples
- Reorganise documentation

0.2.1 (2018-04-21)
------------------

- Add PyPI badge to README

0.2.0 (2018-04-21)
------------------

- Supported transports:
- ``long-polling``
- ``websocket``
- Automatic reconnection after network failures
- Extensions

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

aiocometd-0.2.2.tar.gz (44.6 kB view details)

Uploaded Source

Built Distribution

aiocometd-0.2.2-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

Details for the file aiocometd-0.2.2.tar.gz.

File metadata

  • Download URL: aiocometd-0.2.2.tar.gz
  • Upload date:
  • Size: 44.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for aiocometd-0.2.2.tar.gz
Algorithm Hash digest
SHA256 6b8bc71f7b4f82fadc02aa6c67a6946c89e9fa0a782a61e99335756865afcbdb
MD5 fc15e8bf7f8354e60e0fd6900eb18a5c
BLAKE2b-256 e35cf613c59f321d65fb6362fde8a7215f8b7a47a7efe642c4f568f43271b638

See more details on using hashes here.

File details

Details for the file aiocometd-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for aiocometd-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4f21a885f40e76ce0b50781b260e4ef631f5e26e67329be589f0d32304d744c4
MD5 52edb1c1ad8adbf4ab5b1d8c639656da
BLAKE2b-256 f64eec275f64ad7ccb1680ce037d66b594d4038b40dbd6ecb22ea3113751c4c6

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