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

Uploaded Source

Built Distribution

aiocometd-0.3.1-py3-none-any.whl (23.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aiocometd-0.3.1.tar.gz
Algorithm Hash digest
SHA256 606bf2d08248b3b2b7971c37ff7ee1e825b86c290a17a445a1b3ca4743f7b71a
MD5 7011f57d0a100a8c66e50aa5154e8ea5
BLAKE2b-256 e5a242a287839b1bebc8e2bb208fc0dd14f9e9b27304eaed047bad9f75ebd0d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiocometd-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 06906ecf374ebb50abb6a6736983038e5deb08a5fc4e96e0c6a28a0145aa62dd
MD5 3255f16d5c17b921751b851545ad6ed7
BLAKE2b-256 bd2a281da1b36d6293474c7ecf114271d37fff3d3aaca62f2fb14b4c32b60346

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