Skip to content

Repository files navigation

aiocometd

PyPI packageDocumentation StatusBuild statusCoverageMIT 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

importasynciofromaiocometdimportClientasyncdefchat():
nickname="John"# connect to the serverasyncwithClient("http://example.com/cometd") asclient:
# subscribe to channels to receive chat messages and# notifications about new membersawaitclient.subscribe("/chat/demo")
awaitclient.subscribe("/members/demo")
# send initial messageawaitclient.publish("/chat/demo", {
"user": nickname,
"membership": "join",
"chat": nickname+" has joined"
})
# add the user to the chat room's membersawaitclient.publish("/service/members", {
"user": nickname,
"room": "/chat/demo"
})
# listen for incoming messagesasyncformessageinclient:
ifmessage["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

https://aiocometd.readthedocs.io/

Install

pip install aiocometd

Requirements

About

CometD client for asyncio

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages