nodes.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package analytic
  2. import (
  3. "net/http"
  4. "time"
  5. "github.com/0xJacky/Nginx-UI/internal/analytic"
  6. "github.com/0xJacky/Nginx-UI/internal/helper"
  7. "github.com/gin-gonic/gin"
  8. "github.com/gorilla/websocket"
  9. "github.com/uozi-tech/cosy/logger"
  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 err != nil {
  28. if helper.IsUnexpectedWebsocketError(err) {
  29. logger.Error(err)
  30. }
  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 {
  53. if helper.IsUnexpectedWebsocketError(err) {
  54. logger.Error(err)
  55. }
  56. break
  57. }
  58. time.Sleep(10 * time.Second)
  59. }
  60. }