edb_monitor_message.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package edb_monitor
  2. import (
  3. "eta/eta_api/controllers"
  4. "eta/eta_api/models"
  5. edbmonitor "eta/eta_api/services/edb_monitor"
  6. "net/http"
  7. "github.com/gorilla/websocket"
  8. )
  9. type EdbMonitorMessage struct {
  10. controllers.BaseAuthController
  11. }
  12. var upgrader = websocket.Upgrader{
  13. ReadBufferSize: 1024,
  14. WriteBufferSize: 1024,
  15. CheckOrigin: func(r *http.Request) bool {
  16. return true
  17. },
  18. }
  19. var edbMonitorMessageClient = make(map[int]*websocket.Conn)
  20. // GetMonitorLevel
  21. // @Title 预警管理消息
  22. // @Description 预警管理消息
  23. // @Param request body request.EdbMonitorSaveRequest true "每页数据条数"
  24. // @Success 200 {object} models.EnglishReportEmailPageListResp
  25. // @router /message [get]
  26. func (m *EdbMonitorController) Message() {
  27. br := new(models.BaseResponse).Init()
  28. defer func() {
  29. m.Data["json"] = br
  30. m.ServeJSON()
  31. }()
  32. sysUser := m.SysUser
  33. if sysUser == nil {
  34. br.Msg = "请登录"
  35. br.ErrMsg = "请登录,SysUser Is Empty"
  36. br.Ret = 408
  37. return
  38. }
  39. conn, err := upgrader.Upgrade(m.Ctx.ResponseWriter, m.Ctx.Request, nil)
  40. if err != nil {
  41. return
  42. }
  43. edbMonitorMessageClient[sysUser.AdminId] = conn
  44. conn.SetCloseHandler(func(code int, text string) error {
  45. delete(edbMonitorMessageClient, sysUser.AdminId)
  46. return nil
  47. })
  48. edbmonitor.SendMessages(conn, sysUser.AdminId)
  49. }