Skip to main content
Deno 2 is finally here 🎉️
Learn more
Go to Latest
The Standard Library has been moved to JSR. See the blog post for details.
interface ServerSentEventTarget
implements EventTarget
import { type ServerSentEventTarget } from "https://deno.land/std@0.203.0/http/server_sent_event.ts";

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 { ServerSentEventStreamTarget } from "https://deno.land/std@0.203.0/http/server_sent_event.ts";

Deno.serve({ port: 8000 }, (request) => {
  const target = new ServerSentEventStreamTarget();
  target.dispatchComment("this is a comment");
  return target.asResponse();
});
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 {
  ServerSentEvent,
  ServerSentEventStreamTarget,
} from "https://deno.land/std@0.203.0/http/server_sent_event.ts";

Deno.serve({ port: 8000 }, (request) => {
  const target = new ServerSentEventStreamTarget();
  const evt = new ServerSentEvent("ping", { data: "hello" });
  target.dispatchEvent(evt);
  return target.asResponse();
});
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 {
  ServerSentEvent,
  ServerSentEventStreamTarget,
} from "https://deno.land/std@0.203.0/http/server_sent_event.ts";

Deno.serve({ port: 8000 }, (request) => {
  const target = new ServerSentEventStreamTarget();
  const evt = new ServerSentEvent("ping", { data: "hello" });
  target.dispatchEvent(evt);
  return target.asResponse();
});