123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package dimension
- import (
- "encoding/json"
- log "github.com/donnie4w/go-logger/logger"
- mu "mfw/util"
- "net"
- qu "qfw/util"
- "sync"
- )
- var (
- udpclient mu.UdpClient
- udpLock sync.Mutex
- )
- func initDimensionUdpMsg() {
- port := ":1583"
- udpclient = mu.UdpClient{Local: port, BufSize: 1024}
- udpclient.Listen(processUdpMsg)
- log.Debug("监听~", port)
- }
- func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
- switch act {
- case mu.OP_TYPE_DATA:
- var mapInfo map[string]interface{}
- err := json.Unmarshal(data, &mapInfo)
- if err != nil {
- udpclient.WriteUdp([]byte("err:"+err.Error()), mu.OP_NOOP, ra)
- } else if mapInfo != nil {
- sid, eid := qu.ObjToString(mapInfo["gtid"]), qu.ObjToString(mapInfo["lteid"])
- stype := qu.ObjToString(mapInfo["stype"])
- if stype == "monitor" {
- log.Debug("收到监测......")
- key := qu.ObjToString(mapInfo["key"])
- udpclient.WriteUdp([]byte(key), mu.OP_NOOP, ra)
- return
- }
- if sid == "" || eid == "" {
- log.Debug("异常~", sid, "~", eid)
-
- } else {
- key := sid + "-" + eid + "-" + qu.ObjToString(mapInfo["stype"])
- udpclient.WriteUdp([]byte(key), mu.OP_NOOP, ra)
- udpLock.Lock()
- dealWithIncreaseCoverDepartProTag(sid, eid)
- udpLock.Unlock()
- }
- }
- case mu.OP_NOOP: //下个节点回应
- log.Debug("接收~", string(data))
- }
- }
|