(event string, data interface{})
| 15 | } |
| 16 | |
| 17 | func (e *SSEEncoder) Write(event string, data interface{}) error { |
| 18 | encoded, err := json.Marshal(data) |
| 19 | if err != nil { |
| 20 | return fmt.Errorf("sse: encode event data: %w", err) |
| 21 | } |
| 22 | |
| 23 | if _, err := e.writer.Write([]byte(fmt.Sprintf("event: %s\r\ndata: %s\r\n\r\n", event, encoded))); err != nil { |
| 24 | return fmt.Errorf("sse: write event data: %w", err) |
| 25 | } |
| 26 | |
| 27 | if flusher, ok := e.writer.(http.Flusher); ok { |
| 28 | flusher.Flush() |
| 29 | } else { |
| 30 | return fmt.Errorf("sse: failed to cast writer to http.Flusher") |
| 31 | } |
| 32 | |
| 33 | return nil |
| 34 | } |
no outgoing calls
no test coverage detected