udp.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package udp
  2. import (
  3. "bidding"
  4. "encoding/json"
  5. log "github.com/donnie4w/go-logger/logger"
  6. mu "mfw/util"
  7. "net"
  8. qu "qfw/util"
  9. )
  10. var (
  11. udpclient mu.UdpClient
  12. )
  13. func InitUdpMsg() {
  14. port := ":5550"
  15. udpclient = mu.UdpClient{Local: ":5550", BufSize: 1024}
  16. udpclient.Listen(processUdpMsg)
  17. log.Debug("监听~", port)
  18. }
  19. //udp接收
  20. func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
  21. switch act {
  22. case mu.OP_TYPE_DATA:
  23. var mapInfo map[string]interface{}
  24. err := json.Unmarshal(data, &mapInfo)
  25. if err != nil {
  26. udpclient.WriteUdp([]byte("err:"+err.Error()), mu.OP_NOOP, ra)
  27. } else if mapInfo != nil {
  28. sid, eid := qu.ObjToString(mapInfo["gtid"]), qu.ObjToString(mapInfo["lteid"])
  29. if sid == "" || eid == "" {
  30. log.Debug("异常~", sid, "~", eid)
  31. } else {
  32. key := sid + "-" + eid + "-" + qu.ObjToString(mapInfo["stype"])
  33. udpclient.WriteUdp([]byte(key), mu.OP_NOOP, ra)
  34. bidding.RunPurchasingInfo(sid, eid, true)
  35. }
  36. }
  37. case mu.OP_NOOP: //下个节点回应
  38. ok := string(data)
  39. if ok != "" {
  40. log.Debug("ok:", ok)
  41. }
  42. }
  43. }