code: def _post_event(self, event: Event) -> None:
      if self._closed.is_set():
          return
  
      response = requests.post(
          f"{self.origin}/event",
          headers={"Content-type": "application/json"},
          data=json_util.dumps(
              {
                  "event": event.get_event_name(),
                  "data": asdict(event, dict_factory=dict_factory),
                  "subscription": self._subscription,
              }
          ),
      )
  
      if response.status_code != 200:
          raise RuntimeError(
              f"Failed to post event `{event.get_event_name()}` to {self.origin}/event"
          )
  
imports: from collections import defaultdict
  from dataclasses import asdict, dataclass
  import logging
  from retrying import retry
  from threading import Thread, Event
  import time
  import typing
  from bson import json_util
  import requests
  import sseclient
  from uuid import uuid4
  import fiftyone.constants
  import fiftyone.core.state
  from fiftyone.core.session.events import Event, EventType, ListenPayload, dict_factory
label_desc: Use image node_id 10 for calling the Client obj's underlying member method code with example usage: obj._post_event(event) without return types