Documentation ¶
Overview ¶
This package contains the Server Sent Events implementation used by aurora.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // known errors ErrRateLimited = errors.New("Rate limit exceeded") )
Functions ¶
func WriteEvent ¶
func WriteEvent(ctx context.Context, w http.ResponseWriter, e Event)
WriteEvent does the actual work of formatting an SSE compliant message sending it over the provided ResponseWriter and flushing.
func WritePreamble ¶
func WritePreamble(ctx context.Context, w http.ResponseWriter) bool
WritePreamble prepares this http connection for streaming using Server Sent Events. It sends the initial http response with the appropriate headers to do so.
Types ¶
type GenerateEventsFunc ¶
GenerateEventsFunc generates a slice of sse.Event which are sent via streaming.
type LedgerSourceFactory ¶
type Stream ¶
type Stream struct {
// contains filtered or unexported fields
}
func NewStream ¶
func NewStream(ctx context.Context, w http.ResponseWriter) *Stream
NewStream creates a new stream against the provided response writer.
type StreamHandler ¶
type StreamHandler struct { RateLimiter *throttled.HTTPRateLimiter LedgerSourceFactory LedgerSourceFactory }
StreamHandler represents a stream handling action
func (StreamHandler) ServeStream ¶
func (handler StreamHandler) ServeStream( w http.ResponseWriter, r *http.Request, limit int, generateEvents GenerateEventsFunc, )
ServeStream handles a SSE requests, sending data every time there is a new ledger.
Click to show internal directories.
Click to hide internal directories.