mirror of
https://gitee.com/samwaf/SamWaf.git
synced 2026-10-31 02:01:44 +08:00
54 lines
1.4 KiB
Go
54 lines
1.4 KiB
Go
package waftask
|
|
|
|
import (
|
|
"SamWaf/common/uuid"
|
|
"SamWaf/common/wsmsg"
|
|
"SamWaf/common/zlog"
|
|
"SamWaf/global"
|
|
"SamWaf/model"
|
|
"SamWaf/service/waf_service"
|
|
"time"
|
|
|
|
"github.com/gorilla/websocket"
|
|
)
|
|
|
|
// TaskDelayInfo 定时发送延迟信息
|
|
func TaskDelayInfo() {
|
|
zlog.Debug("TaskDelayInfo")
|
|
models, count, err := waf_service.WafDelayMsgServiceApp.GetAllList()
|
|
if err == nil {
|
|
if count > 0 {
|
|
for i := 0; i < len(models); i++ {
|
|
msg := models[i]
|
|
|
|
cmdType := "Info"
|
|
if msg.DelayType == "升级结果" {
|
|
cmdType = "RELOAD_PAGE"
|
|
}
|
|
dataPacket := model.MsgDataPacket{
|
|
MessageId: uuid.GenUUID(),
|
|
MessageType: msg.DelayType,
|
|
MessageData: msg.DelayContent,
|
|
MessageAttach: nil,
|
|
MessageDateTime: time.Now().Format("2006-01-02 15:04:05"),
|
|
MessageUnReadStatus: true,
|
|
}
|
|
//发送websocket:走会话管理器统一出口,内部按连接加锁 + 写超时;
|
|
//报文按连接各自的会话密钥组装(v2 连接一份,旧连接回落 legacy)
|
|
sendSuccess := global.GWebSocket.BroadcastBuild(websocket.TextMessage, func(keyID string) ([]byte, error) {
|
|
msgBytes, err := wsmsg.Build(keyID, dataPacket, cmdType)
|
|
if err != nil {
|
|
zlog.Debug("组装延迟消息报文错误", err)
|
|
}
|
|
return msgBytes, err
|
|
})
|
|
|
|
if sendSuccess > 0 {
|
|
waf_service.WafDelayMsgServiceApp.DelApi(msg.Id)
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|