def METHOD_NAME(self, *args, **kwargs) -> Optional[Awaitable[None]]:
    # Extract user info from the X-Streamlit-User header
    is_public_cloud_app = False
    try:
        header_content = self.request.headers["X-Streamlit-User"]
        payload = base64.b64decode(header_content)
        user_obj = json.loads(payload)
        email = user_obj["email"]
        is_public_cloud_app = user_obj["isPublicCloudApp"]
    except (KeyError, binascii.Error, json.decoder.JSONDecodeError):
        email = "test@example.com"
    user_info: Dict[str, Optional[str]] = dict()
    if is_public_cloud_app:
        user_info["email"] = None
    else:
        user_info["email"] = email
    existing_session_id = None
    try:
        ws_protocols = [
            p.strip()
            for p in self.request.headers["Sec-Websocket-Protocol"].split(",")
        ]
        if len(ws_protocols) > 1:
            # See the NOTE in the docstring of the select_subprotocol method above
            # for a detailed explanation of why this is done.
            existing_session_id = ws_protocols[1]
    except KeyError:
        # Just let existing_session_id=None if we run into any error while trying to
        # extract it from the Sec-Websocket-Protocol header.
        pass
    self._session_id = self._runtime.connect_session(
        client=self,
        user_info=user_info,
        existing_session_id=existing_session_id,
    )
    return None