prepare for async
This commit is contained in:
parent
9609bbf318
commit
7aa1a9e293
|
@ -0,0 +1,42 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
iot "github.com/ctlove0523/huaweicloud-iot-device-sdk-go"
|
||||
uuid "github.com/satori/go.uuid"
|
||||
"time"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 创建一个设备并初始化
|
||||
device := iot.CreateAsyncIotDevice("5fdb75cccbfe2f02ce81d4bf_liqian", "123456789", "tls://iot-mqtts.cn-north-4.myhuaweicloud.com:8883")
|
||||
device.Init()
|
||||
|
||||
// 注册平台下发消息的callback,当收到平台下发的消息时,调用此callback.
|
||||
// 支持注册多个callback,并且按照注册顺序调用
|
||||
device.AddMessageHandler(func(message iot.Message) bool {
|
||||
fmt.Println("first handler called" + iot.Interface2JsonString(message))
|
||||
return true
|
||||
})
|
||||
|
||||
device.AddMessageHandler(func(message iot.Message) bool {
|
||||
fmt.Println("second handler called" + iot.Interface2JsonString(message))
|
||||
return true
|
||||
})
|
||||
|
||||
//向平台发送消息
|
||||
message := iot.Message{
|
||||
ObjectDeviceId: uuid.NewV4().String(),
|
||||
Name: "Fist send message to platform",
|
||||
Id: uuid.NewV4().String(),
|
||||
Content: "Hello Huawei IoT Platform",
|
||||
}
|
||||
asyncResult:=device.SendMessage(message)
|
||||
if asyncResult.Wait() && asyncResult.Error()!= nil {
|
||||
fmt.Println("async send message failed")
|
||||
} else {
|
||||
fmt.Println("async send message success")
|
||||
}
|
||||
time.Sleep(2 * time.Minute)
|
||||
|
||||
}
|
|
@ -9,7 +9,7 @@ import (
|
|||
type AsyncDevice interface {
|
||||
BaseDevice
|
||||
Gateway
|
||||
SendMessage(message Message) AsyncResult
|
||||
SendMessage(message Message) BooleanAsyncResult
|
||||
ReportProperties(properties DeviceProperties) AsyncResult
|
||||
BatchReportSubDevicesProperties(service DevicesService) AsyncResult
|
||||
QueryDeviceShadow(query DevicePropertyQueryRequest, handler DevicePropertyQueryResponseHandler) AsyncResult
|
||||
|
|
Loading…
Reference in New Issue