package Udp
import (
"encoding/json"
"fmt"
"go-service/src/Socket"
"net"
)
type PositionData struct {
TagID string `json:"tag_id"`
X string `json:"x"`
Y string `json:"y"`
Z string `json:"z"`
}
func handleUdpMsg(conn *net.UDPConn) {
buf := make([]byte,1024)
len, _, err := conn.ReadFromUDP(buf)
if err != nil{
fmt.Println(err.Error())
return
}
message := string(buf[:len])
fmt.Println("udp message:",message)
var msg PositionData
err = json.Unmarshal([]byte(message),&msg)
if err != nil {
return
}
// 加入websocket广播,推送给前端
Socket.AddMsg(buf[:len])
}
func StartUDP() {
udpAddr,_ := net.ResolveUDPAddr("udp","0.0.0.0:8899")
udpConn, err := net.ListenUDP("udp", udpAddr)
if err != nil {
fmt.Println("start UDP server failed :",err)
return
}
fmt.Println("UDP server started")
defer udpConn.Close()
for {
handleUdpMsg(udpConn)
}
}
GIN试玩:开启UDP服务
最新推荐文章于 2024-05-15 10:15:51 发布