nodes.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package analytic
  2. import (
  3. "github.com/0xJacky/Nginx-UI/internal/analytic"
  4. "github.com/0xJacky/Nginx-UI/internal/helper"
  5. "github.com/uozi-tech/cosy/logger"
  6. "github.com/gin-gonic/gin"
  7. "github.com/gorilla/websocket"
  8. "net/http"
  9. "time"
  10. )
  11. func GetNodeStat(c *gin.Context) {
  12. var upGrader = websocket.Upgrader{
  13. CheckOrigin: func(r *http.Request) bool {
  14. return true
  15. },
  16. }
  17. // upgrade http to websocket
  18. ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
  19. if err != nil {
  20. logger.Error(err)
  21. return
  22. }
  23. defer ws.Close()
  24. for {
  25. // write
  26. err = ws.WriteJSON(analytic.GetNodeStat())
  27. if helper.IsUnexpectedWebsocketError(err) {
  28. logger.Error(err)
  29. break
  30. }
  31. time.Sleep(10 * time.Second)
  32. }
  33. }
  34. func GetNodesAnalytic(c *gin.Context) {
  35. var upGrader = websocket.Upgrader{
  36. CheckOrigin: func(r *http.Request) bool {
  37. return true
  38. },
  39. }
  40. // upgrade http to websocket
  41. ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
  42. if err != nil {
  43. logger.Error(err)
  44. return
  45. }
  46. defer ws.Close()
  47. for {
  48. // write
  49. err = ws.WriteJSON(analytic.NodeMap)
  50. if helper.IsUnexpectedWebsocketError(err) {
  51. logger.Error(err)
  52. break
  53. }
  54. time.Sleep(10 * time.Second)
  55. }
  56. }