Help us shape the future of Go! Take the 2026 Go Developer Survey

sse

package module
v1.1.2 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2026 License: MIT Imports: 8 Imported by: 299

README

Server-Sent Events

Go Reference Run Tests Trivy Security Scan codecov

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/gin-contrib/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]interface{}{
      "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;charset=utf-8"

Variables

This section is empty.

Functions

func Encode

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

Types

type Event

type Event struct {
	Event string
	Id    string
	Retry uint
	Data  interface{}
}

func Decode

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

func (Event) Render

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

func (Event) WriteContentType

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

Jump to

Keyboard shortcuts

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