async def METHOD_NAME(self, message):
    try:
        payload = json.loads(message)
    except Exception:  # pylint: disable=broad-except
        logger.debug(
            "Received unexpected message (%s) from spelunky.fyi. Ignoring...",
            message,
        )
    if "action" not in payload:
        logger.debug(
            "Received unexpected message (%s) from spelunky.fyi. Ignoring...",
            message,
        )
    if payload["action"] in ["web-connected", "hello"]:
        if "channel-name" not in payload:
            return
        await self.send(
            {
                "action": "announce",
                "channel-name": payload["channel-name"],
            }
        )
    elif payload["action"] == "web-disconnected":
        pass
    elif payload["action"] == "install":
        await self.handle_install(payload["channel-name"], payload.get("data", {}))
    else:
        logger.debug("Unknown action (%s). Ignoring", payload)