异步处理命令响应
This commit is contained in:
parent
9d7aa65df5
commit
fd6ffc19b9
|
@ -366,6 +366,7 @@ func (device *iotDevice) createMessageMqttHandler() func(client mqtt.Client, mes
|
|||
|
||||
func (device *iotDevice) createCommandMqttHandler() func(client mqtt.Client, message mqtt.Message) {
|
||||
commandHandler := func(client mqtt.Client, message mqtt.Message) {
|
||||
go func() {
|
||||
command := &Command{}
|
||||
if json.Unmarshal(message.Payload(), command) != nil {
|
||||
glog.Warningf("unmarshal platform command failed,device id = %s,message = %s", device.Id, message)
|
||||
|
@ -387,7 +388,6 @@ func (device *iotDevice) createCommandMqttHandler() func(client mqtt.Client, mes
|
|||
ResultCode: 1,
|
||||
})
|
||||
}
|
||||
go func() {
|
||||
if token := device.client.Publish(FormatTopic(CommandResponseTopic, device.Id)+GetTopicRequestId(message.Topic()), 1, false, res);
|
||||
token.Wait() && token.Error() != nil {
|
||||
glog.Infof("device %s send command response failed", device.Id)
|
||||
|
|
|
@ -22,6 +22,7 @@ func main() {
|
|||
// 添加用于处理平台下发命令的callback
|
||||
device.AddCommandHandler(func(command iot.Command) bool {
|
||||
fmt.Println("I get command from platform")
|
||||
time.Sleep(10 * time.Second)
|
||||
return true
|
||||
})
|
||||
time.Sleep(10 * time.Minute)
|
||||
|
|
Loading…
Reference in New Issue