Metadata-Version: 2.1
Name: aiocometd
Version: 0.2.1
Summary: CometD client for asyncio
Home-page: https://github.com/robertmrk/aiocometd
Author: Róbert Márki
Author-email: gsmiko@gmail.com
License: MIT
Keywords: asyncio aiohttp comet cometd bayeux push streaming
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Framework :: AsyncIO
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.6.0
Provides-Extra: tests
Provides-Extra: docs
Provides-Extra: examples
Provides-Extra: dev
Requires-Dist: aiohttp (<4.0,>=3.1)
Provides-Extra: dev
Requires-Dist: flake8; extra == 'dev'
Requires-Dist: pylint; extra == 'dev'
Requires-Dist: asynctest (<1.0.0,>=0.12.0); extra == 'dev'
Requires-Dist: coverage (<5.0,>=4.5); extra == 'dev'
Requires-Dist: Sphinx (<2.0,>=1.7); extra == 'dev'
Requires-Dist: sphinxcontrib-asyncio (>=0.2.0); 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'
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'

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_.

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())


Install
-------

.. code-block:: bash

    pip install aiocometd

Requirements
------------

- Python 3.6+
- aiohttp_

.. _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

Changelog
=========

0.2.0 (2018-04-21)
------------------

- Add PyPI badge to README

0.2.0 (2018-04-21)
------------------

- Initial release

