You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This package attempts to provide a robust and reliable implementation of server-sent events. One might use this package if they were writing an application that needed to connect to an SSE server endpoint and read events in a continuous stream or provide events to a front-end service.
Features
Here's what you get with this package:
Complete documentation for every last type and method in the package
Compliancy with section 9.2 of the WHATWG HTML specification
Extensive test suite to ensure conformance
go-sse requires a minimum of Go 1.18.
Basic Usage
To use the package in your application, begin by importing it:
Note that if the connection is closed or interrupted, the client will attempt to reconnect as per the spec and continue returning events from where it was interrupted. This is all handled behind the scenes and won't affect the status of the event channel.
When you are done receiving events, close the client:
c.Close()
Use as a Server
The server component is provided via Handler, which implements http.Handler:
h:=sse.NewHandler(nil)
// ...or if you want to customize initialization:h:=sse.NewHandler(&sse.HandlerConfig{
NumEventsToKeep: 10,
ChannelBufferSize: 4,
})
To send an event, simply use the Send() method:
h.Send(&sse.Event{
Type: "alert",
Data: "The aliens are invading!",
ID: "12345",
})
When you are done, use the Close() method:
h.Close()
About
Go package for sending and receiving SSE (server-sent events)