sse

package
v1.0.25 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2024 License: MIT Imports: 8 Imported by: 0

README

Server-Sent Events

Server-sent events (SSE) is a technology where a browser receives automatic updates from a server via HTTP connection. The Server-Sent Events EventSource API is standardized as part of HTML5[1] by the W3C.

Sample code

import "github.com/askasoft/pango/net/httpx/sse"

func httpHandler(w http.ResponseWriter, req *http.Request) {
	// data can be a primitive like a string, an integer or a float
	sse.Encode(w, sse.Event{
		Event: "message",
		Data:  "some data\nmore data",
	})

	// also a complex type, like a map, a struct or a slice
	sse.Encode(w, sse.Event{
		Id:    "124",
		Event: "message",
		Data: map[string]any{
			"user":    "manu",
			"date":    time.Now().Unix(),
			"content": "hi!",
		},
	})
}
event: message
data: some data\\nmore data

id: 124
event: message
data: {"content":"hi!","date":1431540810,"user":"manu"}
 

Content-Type

fmt.Println(sse.ContentType)
text/event-stream

Decoding support

There is a client-side implementation of SSE coming soon.

Documentation

Index

Constants

View Source
const ContentType = "text/event-stream"

ContentType "text/event-stream"

Variables

This section is empty.

Functions

func Encode

func Encode(writer io.Writer, event Event) error

Encode encode text event

Types

type Event

type Event struct {
	Event string
	ID    string
	Retry uint
	Data  any
}

Event text event struct

func Decode

func Decode(r io.Reader) ([]Event, error)

Decode decode events

func (Event) Render

func (r Event) Render(w http.ResponseWriter) error

Render write event to http response

func (Event) WriteContentType

func (r Event) WriteContentType(w http.ResponseWriter)

WriteContentType write content type header to http response

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL