---
product: Chilkat
product_version: 11.7.0
language: cpp
language_label: C++
class: ServerSentEvent
class_name: CkServerSentEvent
license: free
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/vcCkServerSentEventRef.html
---
# Chilkat ServerSentEvent — C++ — v11.7.0

> Chilkat 11.7.0 · language=cpp · class=ServerSentEvent (CkServerSentEvent)
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/ServerSentEvent.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/cpp/guide.md`.

## Purpose

**Parse server-sent event text into event name, data, ID, and retry fields.**

`Chilkat.ServerSentEvent` is a small helper class for parsing Server-Sent Events formatted text. Given a multi-line event block, it extracts the `event` name, `data` payload, `id` value, and `retry` interval into simple read-only properties. It is useful when an application receives event-stream text and needs to work with the structured event fields instead of manually parsing the raw lines.

**Load event text**

Use `LoadEvent` to parse a complete multi-line Server-Sent Event block.

**Read event name**

Inspect `EventName` to determine the event type supplied by the server, if an `event:` field is present.

**Read event data**

Use `Data` to obtain the event payload, such as JSON text from a streaming API or real-time service.

**Track event IDs**

Read `LastEventId` when the event includes an `id:` field that identifies the event or stream position.

**Handle retry hints**

Use `Retry` to read the server-provided retry interval when a `retry:` field is included.

**Diagnostics**

Check `LastErrorText` if event text cannot be parsed or if a parsing result is unexpected.

**Relationship to `Chilkat.WebSocket`:** `ServerSentEvent` does not manage a WebSocket connection or parse WebSocket frames. Instead, it can be used after `Chilkat.WebSocket` receives a text message whose payload is formatted as a Server-Sent Event. Read the WebSocket text frame, pass the event text to `LoadEvent`, then use `EventName`, `Data`, `LastEventId`, and `Retry` to process the event.

**Common pattern:** Receive or otherwise obtain a complete Server-Sent Event text block, call `LoadEvent`, then inspect `EventName` to route the event and `Data` to process the payload. Use `LastEventId` and `Retry` when the stream provides reconnection or event-position information.

## Object creation, unlocking and error handling

**Object Creation**

```cpp
// Local variable on the stack
CkServerSentEvent obj;

// Dynamically allocate/delete
CkServerSentEvent *pObj = new CkServerSentEvent();
// ...
delete pObj;
```

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in C++.

How failure is reported depends on the method's return type and is stated in the note under each method below. In every case the diagnostic text is in the `LastErrorText` property of the object whose method was called.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `void get_DebugLogFilePath(CkString &str); const char *debugLogFilePath(void); void put_DebugLogFilePath(const char *newVal);` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastErrorHtml` | `void get_LastErrorHtml(CkString &str); const char *lastErrorHtml(void);` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `void get_LastErrorText(CkString &str); const char *lastErrorText(void);` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `void get_LastErrorXml(CkString &str); const char *lastErrorXml(void);` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `bool get_LastMethodSuccess(void); void put_LastMethodSuccess(bool newVal);` | read/write | Indicates the success or failure of the most recent method call: `true` means success, `false` means failure. |
| `Utf8` | `bool get_Utf8(void); void put_Utf8(bool newVal);` | read/write | When set to `true`, all `const char *` arguments and return values are interpreted as UTF-8 strings. |
| `VerboseLogging` | `bool get_VerboseLogging(void); void put_VerboseLogging(bool newVal);` | read/write | If set to `true`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `void get_Version(CkString &str); const char *version(void);` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `Data` | property, read-only | `void get_Data(CkString &str); const char *data(void);` |
| `EventName` | property, read-only | `void get_EventName(CkString &str); const char *eventName(void);` |
| `LastEventId` | property, read-only | `void get_LastEventId(CkString &str); const char *lastEventId(void);` |
| `Retry` | property, read-only | `int get_Retry(void);` |
| `LoadEvent` | method | `bool LoadEvent(const char *eventText);` |

## Properties

### ServerSentEvent.Data

`Chilkat 11.7.0 · cpp · ServerSentEvent · Data · property · read-only · since 9.5.0.58`

```cpp
void get_Data(CkString &str);

const char *data(void);
```

The data for the server-side event. (If the `data` field was empty, then this will be empty.)

### ServerSentEvent.EventName

`Chilkat 11.7.0 · cpp · ServerSentEvent · EventName · property · read-only · since 9.5.0.58`

```cpp
void get_EventName(CkString &str);

const char *eventName(void);
```

The name of the server-side event. (If the `event` field was not present, then this will be empty.)

### ServerSentEvent.LastEventId

`Chilkat 11.7.0 · cpp · ServerSentEvent · LastEventId · property · read-only · since 9.5.0.58`

```cpp
void get_LastEventId(CkString &str);

const char *lastEventId(void);
```

The content of the `id` field, if present.

### ServerSentEvent.Retry

`Chilkat 11.7.0 · cpp · ServerSentEvent · Retry · property · read-only · since 9.5.0.58`

```cpp
int get_Retry(void);
```

The integer value of the `retry` field, if it exists; otherwise, 0.

## Methods

### ServerSentEvent.LoadEvent

`Chilkat 11.7.0 · cpp · ServerSentEvent · LoadEvent · method · since 9.5.0.58`

```cpp
bool LoadEvent(const char *eventText);
```

Loads the multi-line event text into this object. For example, the `eventText` for a Firebase event might look like this:

```
event: put
data: {"path": "/c", "data": {"foo": true, "bar": false}}
```

Returns true for success, false for failure.

