Skip to main content
Deno 2 is finally here 🎉️
Learn more
Module

x/hex/src/service/deps.ts>oak.ServerSentEventTarget

An ecosystem delivering practices, philosophy and portability.
Go to Latest
interface oak.ServerSentEventTarget
implements EventTarget
import { type oak } from "https://deno.land/x/hex@0.5.15/src/service/deps.ts";
const { ServerSentEventTarget } = oak;

Properties

readonly
closed: boolean

Is set to true if events cannot be sent to the remote connection. Otherwise it is set to false.

Note: This flag is lazily set, and might not reflect a closed state until another event, comment or message is attempted to be processed.

Methods

close(): Promise<void>

Close the target, refusing to accept any more events.

dispatchComment(comment: string): boolean

Send a comment to the remote connection. Comments are not exposed to the client EventSource but are used for diagnostics and helping ensure a connection is kept alive.

import { Application } from "https://deno.land/x/oak/mod.ts";

const app = new Application();

app.use((ctx) => {
   const sse = ctx.getSSETarget();
   sse.dispatchComment("this is a comment");
});

await app.listen();
dispatchMessage(data: unknown): boolean

Dispatch a message to the client. This message will contain data: only and be available on the client EventSource on the onmessage or an event listener of type "message".

dispatchEvent(event: ServerSentEvent): boolean

Dispatch a server sent event to the client. The event type will be sent as event: to the client which will be raised as a MessageEvent on the EventSource in the client.

Any local event handlers will be dispatched to first, and if the event is cancelled, it will not be sent to the client.

import { Application, ServerSentEvent } from "https://deno.land/x/oak/mod.ts";

const app = new Application();

app.use((ctx) => {
   const sse = ctx.getSSETarget();
   const evt = new ServerSentEvent("ping", "hello");
   sse.dispatchEvent(evt);
});

await app.listen();
dispatchEvent(event: CloseEvent | ErrorEvent): boolean

Dispatch a server sent event to the client. The event type will be sent as event: to the client which will be raised as a MessageEvent on the EventSource in the client.

Any local event handlers will be dispatched to first, and if the event is cancelled, it will not be sent to the client.

import { Application, ServerSentEvent } from "https://deno.land/x/oak/mod.ts";

const app = new Application();

app.use((ctx) => {
   const sse = ctx.getSSETarget();
   const evt = new ServerSentEvent("ping", "hello");
   sse.dispatchEvent(evt);
});

await app.listen();