live.go 724 B

123456789101112131415161718192021222324252627282930313233343536
  1. package live
  2. import (
  3. "net/http"
  4. "github.com/grafana/grafana/pkg/api/dtos"
  5. "github.com/grafana/grafana/pkg/log"
  6. "github.com/grafana/grafana/pkg/middleware"
  7. )
  8. type LiveConn struct {
  9. }
  10. func New() *LiveConn {
  11. go h.run()
  12. return &LiveConn{}
  13. }
  14. func (lc *LiveConn) Serve(w http.ResponseWriter, r *http.Request) {
  15. log.Info("Live: Upgrading to WebSocket")
  16. ws, err := upgrader.Upgrade(w, r, nil)
  17. if err != nil {
  18. log.Error(3, "Live: Failed to upgrade connection to WebSocket", err)
  19. return
  20. }
  21. c := newConnection(ws)
  22. h.register <- c
  23. go c.writePump()
  24. c.readPump()
  25. }
  26. func (lc *LiveConn) PushToStream(c *middleware.Context, message dtos.StreamMessage) {
  27. h.streamChannel <- &message
  28. c.JsonOK("Message recevived")
  29. }