nodes.go 1.3 KB

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