Skip to content

byildiz/asyncpusher

Repository files navigation

asyncpusher is an asynchronous python client library for Pusher

Features

  • Uses well-maintained aiohttp's websocket library
  • Reliable connection
  • Auto handles reconnection
  • Asynchronous
  • Fast
  • Supports Pusher Channels protocol 7
  • Supports presence and private channels

Install

$ python3 -m pip install asyncpusher

Usage

import asyncio
import logging
import sys

from asyncpusher.channel import Channel
from asyncpusher.pusher import Pusher

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)


async def handle_event(data):
    logging.info(f"{market} {data}")


async def main():
    loop = asyncio.get_running_loop()

    pusher = Pusher("<PUSHER_APP_KEY>", loop=loop)
    pusher.channels[channel_name] = channel
    await pusher.connect()
    channel_name = "<CHANNEL_NAME>"
    channel = await pusher.subscribe(channel_name)
    channel.bind("diff", handle_event)
    await asyncio.sleep(5)
    await pusher.unsubscribe(channel_name)
    await asyncio.sleep(1)
    await pusher.disconnect()


asyncio.run(main())