No Description

Manu Mtz-Almeida fe6ea2c8e3 Conforms to w3.org standard + experimental decoder 10 years ago
.travis.yml 0656c24e21 Adds .travis.yml 10 years ago
LICENSE b7eeebd898 Adds MIT license (file) 10 years ago
README.md c60c0e49b3 Updates README with decoding support 10 years ago
sse-decoder.go fe6ea2c8e3 Conforms to w3.org standard + experimental decoder 10 years ago
sse-decoder_test.go fe6ea2c8e3 Conforms to w3.org standard + experimental decoder 10 years ago
sse-encoder.go fe6ea2c8e3 Conforms to w3.org standard + experimental decoder 10 years ago
sse_test.go fe6ea2c8e3 Conforms to w3.org standard + experimental decoder 10 years ago
writer.go 404710eaa4 Performance improvements. 10 years ago

README.md

#Server-Sent Events GoDoc Build Status

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/manucorporat/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.