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}")