in asfpy/pubsub.py [0:0]
def test_listening():
    logging.basicConfig(level=logging.DEBUG)
    start = time.time()
    count = 0
    # We'll say "now" is when we believe the connection to be alive.
    last_traffic = time.time()
    async def report_stats():
        while True:
            # NOTE: do not set this lower than 60, or at startup,
            # DURATION will be zero, creating a div-by-zero error.
            await asyncio.sleep(70)
            duration = int((time.time() - start) / 60)
            alive_since = int(time.time() - last_traffic)
            print(f'[{duration}m] {count} events.  {count/duration:.1f}/min'
                  f'  traffic: {alive_since}s ago')
    async def print_events():
        async for payload in listen('https://pubsub.apache.org:2070/'):
            nonlocal last_traffic
            last_traffic = time.time()
            if 'stillalive' not in payload:
                print(f'PAYLOAD: [{payload.get("pubsub_path", "none")}]'
                      f'  KEYS: {sorted(payload.keys())}')
                nonlocal count
                count += 1
    async def run_test():
        await asyncio.gather(report_stats(), print_events())
    asyncio.run(run_test())