<!-- # hard line break macro for HTML -->

# fiftyone.core.session.client

Session server-sent events client.

Copyright 2017-2026, Voxel51, Inc.
<br/>
[voxel51.com](https://voxel51.com/)
<br/>
<br/>

**Classes:**

| [`Client`](#fiftyone.core.session.client.Client)(address, auto, port, remote, start_time)   |    |
|---------------------------------------------------------------------------------------------|----|

### *class* fiftyone.core.session.client.Client(address: str, auto: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool), port: int, remote: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool), start_time: float)

Bases: `object`

**Attributes:**

| [`address`](#fiftyone.core.session.client.Client.address)       |                                 |
|-----------------------------------------------------------------|---------------------------------|
| [`auto`](#fiftyone.core.session.client.Client.auto)             |                                 |
| [`port`](#fiftyone.core.session.client.Client.port)             |                                 |
| [`remote`](#fiftyone.core.session.client.Client.remote)         |                                 |
| [`start_time`](#fiftyone.core.session.client.Client.start_time) |                                 |
| [`origin`](#fiftyone.core.session.client.Client.origin)         | The origin of the server        |
| [`is_open`](#fiftyone.core.session.client.Client.is_open)       | Whether the client is connected |

**Methods:**

| [`open`](#fiftyone.core.session.client.Client.open)(state)                                                  | Open the client connection                                                               |
|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|
| [`close`](#fiftyone.core.session.client.Client.close)()                                                     | Close the client connection                                                              |
| [`send_event`](#fiftyone.core.session.client.Client.send_event)(event)                                      | Sends an event to the server                                                             |
| [`add_event_listener`](#fiftyone.core.session.client.Client.add_event_listener)(event_name, listener)       | Adds an event listener callback for the provided event name.                             |
| [`remove_event_listener`](#fiftyone.core.session.client.Client.remove_event_listener)(event_name, listener) | Removes an event listener callback for the provided event name if it has been registered |

#### address *: str*

#### auto *: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool)*

#### port *: int*

#### remote *: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool)*

#### start_time *: float*

#### *property* origin *: str*

The origin of the server

#### *property* is_open *: str*

Whether the client is connected

#### open(state: [StateDescription](fiftyone.core.state.md#fiftyone.core.state.StateDescription)) → None

Open the client connection

Arg:
: state: the initial state description

#### close()

Close the client connection

#### send_event(event: [CaptureNotebookCell](fiftyone.core.session.events.md#fiftyone.core.session.events.CaptureNotebookCell) | [CloseSession](fiftyone.core.session.events.md#fiftyone.core.session.events.CloseSession) | [DeactivateNotebookCell](fiftyone.core.session.events.md#fiftyone.core.session.events.DeactivateNotebookCell) | [ReactivateNotebookCell](fiftyone.core.session.events.md#fiftyone.core.session.events.ReactivateNotebookCell) | [SelectSamples](fiftyone.core.session.events.md#fiftyone.core.session.events.SelectSamples) | [SelectLabels](fiftyone.core.session.events.md#fiftyone.core.session.events.SelectLabels) | [SetColorScheme](fiftyone.core.session.events.md#fiftyone.core.session.events.SetColorScheme) | [SetGroupSlice](fiftyone.core.session.events.md#fiftyone.core.session.events.SetGroupSlice) | [SetSample](fiftyone.core.session.events.md#fiftyone.core.session.events.SetSample) | [SetLabelSelectionStyle](fiftyone.core.session.events.md#fiftyone.core.session.events.SetLabelSelectionStyle) | [SetSampleSelectionStyle](fiftyone.core.session.events.md#fiftyone.core.session.events.SetSampleSelectionStyle) | [SetSpaces](fiftyone.core.session.events.md#fiftyone.core.session.events.SetSpaces) | [StateUpdate](fiftyone.core.session.events.md#fiftyone.core.session.events.StateUpdate) | [SetFieldVisibilityStage](fiftyone.core.session.events.md#fiftyone.core.session.events.SetFieldVisibilityStage)) → None

Sends an event to the server

* **Parameters:**
  **event** – the event

#### add_event_listener(event_name: str, listener: Callable) → None

Adds an event listener callback for the provided event name. Events
sent from client and from the server connection will be dispatched to
the listener

* **Parameters:**
  * **event_name** – the event name
  * **listener** – the listener callback

#### remove_event_listener(event_name: str, listener: Callable) → None

Removes an event listener callback for the provided event name if
it has been registered

* **Parameters:**
  * **event_name** – the event name
  * **listener** – the listener callback
