| 12345678910111213141516171819202122232425262728293031 |
- package render
- import (
- "net/http"
- "github.com/manucorporat/sse"
- )
- type sseRender struct{}
- var SSEvent Render = sseRender{}
- func (_ sseRender) Render(w http.ResponseWriter, code int, data ...interface{}) error {
- eventName := data[0].(string)
- obj := data[1]
- return WriteSSEvent(w, eventName, obj)
- }
- func WriteSSEvent(w http.ResponseWriter, eventName string, data interface{}) error {
- header := w.Header()
- if len(header.Get("Content-Type")) == 0 {
- header.Set("Content-Type", sse.ContentType)
- }
- if len(header.Get("Cache-Control")) == 0 {
- header.Set("Cache-Control", "no-cache")
- }
- return sse.Encode(w, sse.Event{
- Event: eventName,
- Data: data,
- })
- }
|