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

Changelog

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

Uploaded Source

Built Distribution

aiocometd-0.4.0-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aiocometd-0.4.0.tar.gz
  • Upload date:
  • Size: 51.0 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.0.tar.gz
Algorithm Hash digest
SHA256 a9e2b7e41542b122604e1fd60e43949fa71a70071ff3d0aeaf0994ae2d6759e8
MD5 5cd9feac7940a8e633bd609ed60e35d3
BLAKE2b-256 e39ba8bd11c388213b42a5fed56a5058a6f57e9372d61f7497be477a474b01c5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aiocometd-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 26.4 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8a6e092e844c2e000e726b56734dd6644b2aced6853631f0cec55a71c5384919
MD5 47e062a5c2e91ff4d82030b52655b7d5
BLAKE2b-256 38b6bc7f5bd1ed6d24352629a56ca8ad1e787b5063a2bb5386a21de2080cfb96

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