1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
package events
import "github.com/r3labs/sse/v2"
const (
LOGS = "logs" // Logs event channel, contains daemon logs
STATUS = "status" // status event channel, contains VM load info
)
type EventPublisher interface {
Publish(event *sse.Event)
}
type EventProducer interface {
Start(publisher EventPublisher)
Stop()
}
type eventPublisher struct {
streamID string
sseServer *sse.Server
}
func newEventPublisher(streamID string, server *sse.Server) EventPublisher {
return &eventPublisher{
streamID: streamID,
sseServer: server,
}
}
func (ep *eventPublisher) Publish(event *sse.Event) {
ep.sseServer.Publish(ep.streamID, event)
}
|