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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aiocometd-0.3.0.tar.gz
Algorithm Hash digest
SHA256 26527833a161980cae512394560da7594105bd70cca1ab8dd22a27d483492e3c
MD5 cdde89e1e69a0eff9323048cdc38b8a0
BLAKE2b-256 7dffb98c656202a740c41ebec6bb3c06eefcf542dea3948fe427a2771eb53295

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiocometd-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ff4ae09d847f824cd22011f5d789d24f1242fa9ffe96bdb7d9a9732ad9ce7ea0
MD5 a3db087b6df71afc0f89c64a2ac2bcf4
BLAKE2b-256 0a956f525cf1ce5f1e28cd4a5305c2d98c607d5f42319ed86a2384161d6c27f1

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