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
Metadata
Release files for tastyworks-aiocometd 1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tastyworks-aiocometd-1.0.tar.gz | 55.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tastyworks_aiocometd-1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 83.3 kB
Release files / tastyworks-aiocometd-1.0.tar.gz
| Download URL | tastyworks-aiocometd-1.0.tar.gz |
|---|---|
| Size | 55.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
225680ec207aa40e1c2b4d1628353e32c24654121fba3ba87b288e7544d17047
|
|
BLAKE2b-256 checksum How to use checksums |
0ca9422c4b1c92375697c4647ec695f958ae867c17d04e3e9cc42adbeb907e9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|
Release files / tastyworks_aiocometd-1.0-py3-none-any.whl
| Download URL | tastyworks_aiocometd-1.0-py3-none-any.whl |
|---|---|
| Size | 28.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0f4b798176237451d1b0e143b0ef20d77c62349aa895bd1672cbf40e79484d2c
|
|
BLAKE2b-256 checksum How to use checksums |
8f27e51a2d170c939ca7d8eb8edd2d6b5cf55ab3082ad85605c8932b6ee34089
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|