package pkg import ( "cicv-data-closedloop/aarch64/pjibot_guide/common/config" "encoding/json" "fmt" "log" "time" ) type StatusMessage struct { Type string `json:"type"` Topic string `json:"topic"` Time int64 `json:"time"` Data interface{} `json:"data"` } func GetLocalStatus(localStatus *string) { for { time.Sleep(2 * time.Second) _, msg, err := config.WsConn.ReadMessage() if err != nil { log.Println("Error in receive:", err) break } log.Printf("Received: %s\n", msg) // 将响应字节解码为JSON var statusMessage StatusMessage err = json.Unmarshal(msg, &statusMessage) if err != nil { log.Println("Error in receive:", err) break } fmt.Println("statusMessage:", statusMessage) if statusMessage.Type == "push" && statusMessage.Topic == "robotStatus" { data := statusMessage.Data.(map[string]interface{}) fmt.Println("statusMessage.Data", data) fmt.Println("statusMessage.Data[\"taskStatus\"]", data["taskStatus"]) *localStatus = data["taskStatus"].(string) } } }