Metadata-Version: 2.1 Name: aiocometd-ng Version: 0.5.6 Summary: CometD client for asyncio Home-page: https://github.com/bensnyde/aiocometd-ng Author: Benton Snyder Author-email: benton@bensnyde.me License: MIT Project-URL: CI, https://travis-ci.org/robertmrk/aiocometd Project-URL: Coverage, https://coveralls.io/github/robertmrk/aiocometd Project-URL: Docs, http://aiocometd.readthedocs.io/ Keywords: asyncio aiohttp comet cometd bayeux push streaming Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Framework :: AsyncIO Classifier: License :: OSI Approved :: MIT License Requires-Python: >=3.10.0 License-File: LICENSE.txt Requires-Dist: aiohttp >=3.1 Provides-Extra: dev Requires-Dist: asynctest <1.0.0,>=0.12.0 ; extra == 'dev' Requires-Dist: coverage <5.0,>=4.5 ; extra == 'dev' Requires-Dist: docker >=3.5.1 ; extra == 'dev' Requires-Dist: flake8 ; extra == 'dev' Requires-Dist: pylint ; extra == 'dev' Requires-Dist: mypy ; extra == 'dev' Requires-Dist: Sphinx <2.0,>=1.7 ; extra == 'dev' Requires-Dist: sphinxcontrib-asyncio >=0.2.0 ; extra == 'dev' Requires-Dist: sphinx-autodoc-typehints ; extra == 'dev' Requires-Dist: aioconsole <1.0.0,>=0.1.7 ; extra == 'dev' Provides-Extra: docs Requires-Dist: Sphinx <2.0,>=1.7 ; extra == 'docs' Requires-Dist: sphinxcontrib-asyncio >=0.2.0 ; extra == 'docs' Requires-Dist: sphinx-autodoc-typehints ; extra == 'docs' Provides-Extra: examples Requires-Dist: aioconsole <1.0.0,>=0.1.7 ; extra == 'examples' Provides-Extra: tests Requires-Dist: asynctest <1.0.0,>=0.12.0 ; extra == 'tests' Requires-Dist: coverage <5.0,>=4.5 ; extra == 'tests' Requires-Dist: docker >=3.5.1 ; extra == 'tests' Requires-Dist: flake8 ; extra == 'tests' Requires-Dist: pylint ; extra == 'tests' Requires-Dist: mypy ; extra == 'tests' 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()) 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/ .. _aiohttp: https://github.com/aio-libs/aiohttp/ .. _CometD: https://cometd.org/ .. _Comet: https://en.wikipedia.org/wiki/Comet_(programming) .. _asyncio: https://docs.python.org/3/library/asyncio.html .. _Bayeux: https://docs.cometd.org/current/reference/#_bayeux .. _ext: https://docs.cometd.org/current/reference/#_bayeux_ext .. _cli_example: https://github.com/robertmrk/aiocometd/blob/develop/examples/chat.py .. _aiocometd-chat-demo: https://github.com/robertmrk/aiocometd-chat-demo 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