Skip to content

ping_handler

fastagency.studio.faststream_app.ping_handler async #

ping_handler(
    body: dict[str, Any], msg: NatsMessage, logger: Logger
) -> None
Source code in fastagency/studio/faststream_app.py
async def ping_handler(body: dict[str, Any], msg: NatsMessage, logger: Logger) -> None:
    raw_message = msg.raw_message

    subject = raw_message.subject
    client_id = subject.split(".")[1]
    reply_subject = raw_message.reply

    await msg.ack()
    logger.info(
        f"Received a message on '{subject=} {reply_subject=}': {body=} -> from {process_id=}"
    )

    if "msg" not in body or body["msg"].lower() != "ping":
        reply_msg = f"Unknown message: {body}, please send 'ping' in body['msg']"
    else:
        reply_msg = "pong"

    reply = {
        "msg": reply_msg,
        "process_id": process_id,
    }
    await broker.publish(json.dumps(reply), f"pong.{client_id}")