package NatsServer import ( "Yunlot/lib" "Yunlot/logs" "Yunlot/models/Device" "github.com/nats-io/nats.go" "github.com/vmihailenco/msgpack/v5" ) func NatsServer_Device() { // 请求-响应 _, _ = lib.Nats.Subscribe("/Device/Device/Get", func(m *nats.Msg) { logs.Println("Nats /Device/Device/Get: %s\n", string(m.Data)) var Device_r Device.Device err := msgpack.Unmarshal(m.Data, &Device_r) if err != nil { logs.PrintlnError("Nats:", err) b, _ := msgpack.Marshal(&lib.JSONR{Code: lib.Error, Msg: "解析错误!"}) _ = lib.Nats.Publish(m.Reply, b) return } if !Device_r.Read_Tidy() { b, _ := msgpack.Marshal(&lib.JSONR{Code: lib.Error, Msg: "SN E!"}) _ = lib.Nats.Publish(m.Reply, b) return } b, _ := msgpack.Marshal(&lib.JSONR{Code: lib.Success, Msg: "ok!", Data: Device_r}) _ = lib.Nats.Publish(m.Reply, b) }) // 请求-响应 _, _ = lib.Nats.Subscribe("/Device/Device/List", func(m *nats.Msg) { logs.Println("Nats /Device/Device/List: %s\n", string(m.Data)) var Device_r Device.Device err := msgpack.Unmarshal(m.Data, &Device_r) if err != nil { logs.PrintlnError("Nats:", err) b, _ := msgpack.Marshal(&lib.JSONR{Code: lib.Error, Msg: "解析错误!"}) _ = lib.Nats.Publish(m.Reply, b) return } Device_list := Device_r.Lists_All() b, _ := msgpack.Marshal(&lib.JSONR{Code: lib.Success, Msg: "ok!", Data: Device_list}) _ = lib.Nats.Publish(m.Reply, b) }) }