Skip to main content

CometD client for asyncio

Project description

aiocometd

PyPI package Documentation Status Build status Coverage 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

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())

For more detailed usage examples take a look at the command line chat example or for a more complex example with a GUI check out the aiocometd-chat-demo.

Documentation

https://aiocometd.readthedocs.io/

Changelog

0.4.4 (2019-02-26)

  • Refactor the websocket transport implementation to use a single connection per client

0.4.3 (2019-02-12)

  • Fix reconnection issue on Salesforce Streaming API

0.4.2 (2019-01-15)

  • Fix the handling of invalid websocket transport responses

  • Fix the handling of failed subscription responses

0.4.1 (2019-01-04)

  • Add documentation links

0.4.0 (2019-01-04)

  • Add type hints

  • Add integration tests

0.3.1 (2018-06-15)

  • Fix premature request timeout issue

0.3.0 (2018-05-04)

  • Enable the usage of third party JSON libraries

  • Fix detection and recovery from network failures

0.2.3 (2018-04-24)

  • Fix RST rendering issues

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.4.4.tar.gz (53.5 kB view details)

Uploaded Source

Built Distribution

aiocometd-0.4.4-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aiocometd-0.4.4.tar.gz
  • Upload date:
  • Size: 53.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for aiocometd-0.4.4.tar.gz
Algorithm Hash digest
SHA256 e0a7f39fdc8f75527479495e6c42bb5173c5d82bdc6523bd9a3a5e1c7f1fb5a3
MD5 2ccdc133352e1d56592de20a11614a93
BLAKE2b-256 d2536a6d58fc07e0eb0f2a0aa4f3fe8ff22b239c869b371d16f19bcd7201485b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aiocometd-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 27.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for aiocometd-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5cf056b3f97cab4b0a630f932930971ba17f64ec3adde8558cc0cdd961eeac34
MD5 9393e81c7407e173f4bdc39b2f6172b9
BLAKE2b-256 2aac056006c59c895cb99781bfac57871bb70604b25704093ae8211d56d89183

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