CometD client for asyncio
Project description
aiocometd
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
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size aiocometd-0.4.5-py3-none-any.whl (28.0 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size aiocometd-0.4.5.tar.gz (54.0 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for aiocometd-0.4.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45bf584e8c69f74471945b00310f62c7de845a760d87f3d8604c301ca4e25d44 |
|
MD5 | 18828c927752e4e0b7ceb59016797c06 |
|
BLAKE2-256 | e39617bd03054056b41b5855a582946cc5d47e568c5bc4452a2de90ddce6d1a8 |