CometD client for asyncio
Project description
aiocometd
=========
.. image:: https://badge.fury.io/py/aiocometd.svg
:target: https://badge.fury.io/py/aiocometd
:alt: PyPI package
.. image:: https://readthedocs.org/projects/aiocometd/badge/?version=latest
:target: http://aiocometd.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://travis-ci.org/robertmrk/aiocometd.svg?branch=develop
:target: https://travis-ci.org/robertmrk/aiocometd
:alt: Build status
.. image:: https://coveralls.io/repos/github/robertmrk/aiocometd/badge.svg
:target: https://coveralls.io/github/robertmrk/aiocometd
:alt: Coverage
.. image:: https://img.shields.io/badge/License-MIT-yellow.svg
:target: https://opensource.org/licenses/MIT
:alt: 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
-----
.. code-block:: python
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())
.. include:: docs/source/global.rst
Changelog
=========
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
=========
.. image:: https://badge.fury.io/py/aiocometd.svg
:target: https://badge.fury.io/py/aiocometd
:alt: PyPI package
.. image:: https://readthedocs.org/projects/aiocometd/badge/?version=latest
:target: http://aiocometd.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://travis-ci.org/robertmrk/aiocometd.svg?branch=develop
:target: https://travis-ci.org/robertmrk/aiocometd
:alt: Build status
.. image:: https://coveralls.io/repos/github/robertmrk/aiocometd/badge.svg
:target: https://coveralls.io/github/robertmrk/aiocometd
:alt: Coverage
.. image:: https://img.shields.io/badge/License-MIT-yellow.svg
:target: https://opensource.org/licenses/MIT
:alt: 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
-----
.. code-block:: python
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())
.. include:: docs/source/global.rst
Changelog
=========
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.
Source Distribution
aiocometd-0.2.2.tar.gz
(44.6 kB
view details)
Built Distribution
aiocometd-0.2.2-py3-none-any.whl
(22.6 kB
view details)
File details
Details for the file aiocometd-0.2.2.tar.gz
.
File metadata
- Download URL: aiocometd-0.2.2.tar.gz
- Upload date:
- Size: 44.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b8bc71f7b4f82fadc02aa6c67a6946c89e9fa0a782a61e99335756865afcbdb |
|
MD5 | fc15e8bf7f8354e60e0fd6900eb18a5c |
|
BLAKE2b-256 | e35cf613c59f321d65fb6362fde8a7215f8b7a47a7efe642c4f568f43271b638 |
File details
Details for the file aiocometd-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: aiocometd-0.2.2-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f21a885f40e76ce0b50781b260e4ef631f5e26e67329be589f0d32304d744c4 |
|
MD5 | 52edb1c1ad8adbf4ab5b1d8c639656da |
|
BLAKE2b-256 | f64eec275f64ad7ccb1680ce037d66b594d4038b40dbd6ecb22ea3113751c4c6 |