Skip to main content

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.5 (2019-03-14)

  • Fix connection issues when used with reverse proxy servers with cookie based sticky sessions

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

Download files

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

Source Distribution

tastyworks-aiocometd-1.0.tar.gz (55.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tastyworks_aiocometd-1.0-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file tastyworks-aiocometd-1.0.tar.gz.

File metadata

  • Download URL: tastyworks-aiocometd-1.0.tar.gz
  • Upload date:
  • Size: 55.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

File hashes

Hashes for tastyworks-aiocometd-1.0.tar.gz
Algorithm Hash digest
SHA256 225680ec207aa40e1c2b4d1628353e32c24654121fba3ba87b288e7544d17047
MD5 418d752efa796035512e12595b69c52c
BLAKE2b-256 0ca9422c4b1c92375697c4647ec695f958ae867c17d04e3e9cc42adbeb907e9b

See more details on using hashes here.

File details

Details for the file tastyworks_aiocometd-1.0-py3-none-any.whl.

File metadata

  • Download URL: tastyworks_aiocometd-1.0-py3-none-any.whl
  • Upload date:
  • Size: 28.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

File hashes

Hashes for tastyworks_aiocometd-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f4b798176237451d1b0e143b0ef20d77c62349aa895bd1672cbf40e79484d2c
MD5 47e3da1136c75128f1e28bc31be1196e
BLAKE2b-256 8f27e51a2d170c939ca7d8eb8edd2d6b5cf55ab3082ad85605c8932b6ee34089

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page