---
product: Chilkat
product_version: 11.7.0
language: delphidll
language_label: Delphi DLL
class: ServerSentEvent
license: free
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/dd_CkServerSentEventRef.html
---
# Chilkat ServerSentEvent — Delphi DLL — v11.7.0

> Chilkat 11.7.0 · language=delphidll · class=ServerSentEvent
> 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/delphidll/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

**Create/Dispose**

```pascal
var
myObject: HCkServerSentEvent;

begin
myObject := CkServerSentEvent_Create();

// ...

CkServerSentEvent_Dispose(myObject);
end;
```

`function CkServerSentEvent_Create: HCkServerSentEvent; stdcall;`

Creates an instance of the HCkServerSentEvent object and returns a handle (i.e. a Pointer). The handle is passed in the 1st argument for the functions listed on this page.

`procedure CkServerSentEvent_Dispose(handle: HCkServerSentEvent); stdcall;`

Objects created by calling CkServerSentEvent_Create must be freed by calling this method. A memory leak occurs if a handle is not disposed by calling this function.

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 Delphi DLL.

## 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` | `procedure CkServerSentEvent_getDebugLogFilePath(objHandle: HCkServerSentEvent; outPropVal: HCkString); stdcall; procedure CkServerSentEvent_putDebugLogFilePath(objHandle: HCkServerSentEvent; newPropVal: PWideChar); stdcall; function CkServerSentEvent__debugLogFilePath(objHandle: HCkServerSentEvent): PWideChar; stdcall;` | 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` | `procedure CkServerSentEvent_getLastErrorHtml(objHandle: HCkServerSentEvent; outPropVal: HCkString); stdcall; function CkServerSentEvent__lastErrorHtml(objHandle: HCkServerSentEvent): PWideChar; stdcall;` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `procedure CkServerSentEvent_getLastErrorText(objHandle: HCkServerSentEvent; outPropVal: HCkString); stdcall; function CkServerSentEvent__lastErrorText(objHandle: HCkServerSentEvent): PWideChar; stdcall;` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `procedure CkServerSentEvent_getLastErrorXml(objHandle: HCkServerSentEvent; outPropVal: HCkString); stdcall; function CkServerSentEvent__lastErrorXml(objHandle: HCkServerSentEvent): PWideChar; stdcall;` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `function CkServerSentEvent_getLastMethodSuccess(objHandle: HCkServerSentEvent): wordbool; stdcall; procedure CkServerSentEvent_putLastMethodSuccess(objHandle: HCkServerSentEvent; newPropVal: wordbool); stdcall;` | read/write | Indicates the success or failure of the most recent method call: `True` means success, `False` means failure. |
| `VerboseLogging` | `function CkServerSentEvent_getVerboseLogging(objHandle: HCkServerSentEvent): wordbool; stdcall; procedure CkServerSentEvent_putVerboseLogging(objHandle: HCkServerSentEvent; newPropVal: wordbool); stdcall;` | read/write | If set to `True`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `procedure CkServerSentEvent_getVersion(objHandle: HCkServerSentEvent; outPropVal: HCkString); stdcall; function CkServerSentEvent__version(objHandle: HCkServerSentEvent): PWideChar; stdcall;` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `Data` | property, read-only | `procedure CkServerSentEvent_getData(objHandle: HCkServerSentEvent; outPropVal: HCkString); stdcall; function CkServerSentEvent__data(objHandle: HCkServerSentEvent): PWideChar; stdcall;` |
| `EventName` | property, read-only | `procedure CkServerSentEvent_getEventName(objHandle: HCkServerSentEvent; outPropVal: HCkString); stdcall; function CkServerSentEvent__eventName(objHandle: HCkServerSentEvent): PWideChar; stdcall;` |
| `LastEventId` | property, read-only | `procedure CkServerSentEvent_getLastEventId(objHandle: HCkServerSentEvent; outPropVal: HCkString); stdcall; function CkServerSentEvent__lastEventId(objHandle: HCkServerSentEvent): PWideChar; stdcall;` |
| `Retry` | property, read-only | `function CkServerSentEvent_getRetry(objHandle: HCkServerSentEvent): Integer; stdcall;` |
| `LoadEvent` | method | `function CkServerSentEvent_LoadEvent(objHandle: HCkServerSentEvent;     eventText: PWideChar): wordbool; stdcall;` |

## Properties

### ServerSentEvent.Data

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

```pascal
procedure CkServerSentEvent_getData(objHandle: HCkServerSentEvent; outPropVal: HCkString); stdcall;
function CkServerSentEvent__data(objHandle: HCkServerSentEvent): PWideChar; stdcall;
```

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

### ServerSentEvent.EventName

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

```pascal
procedure CkServerSentEvent_getEventName(objHandle: HCkServerSentEvent; outPropVal: HCkString); stdcall;
function CkServerSentEvent__eventName(objHandle: HCkServerSentEvent): PWideChar; stdcall;
```

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 · delphidll · ServerSentEvent · LastEventId · property · read-only · since 9.5.0.58`

```pascal
procedure CkServerSentEvent_getLastEventId(objHandle: HCkServerSentEvent; outPropVal: HCkString); stdcall;
function CkServerSentEvent__lastEventId(objHandle: HCkServerSentEvent): PWideChar; stdcall;
```

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

### ServerSentEvent.Retry

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

```pascal
function CkServerSentEvent_getRetry(objHandle: HCkServerSentEvent): Integer; stdcall;
```

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

## Methods

### ServerSentEvent.LoadEvent

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

```pascal
function CkServerSentEvent_LoadEvent(objHandle: HCkServerSentEvent;
    eventText: PWideChar): wordbool; stdcall;
```

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.

