阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:9. 自定义委托事件方法
2019-06-09 20:59
946 查看
文档目录:
- 说明
- 1. 连接阿里云物联网
- 2. IoT 客户端
- 3. 订阅Topic与响应Topic
- 4. 设备上报属性
- 4.1 上报位置信息
- 5. 设置设备属性
- 6. 设备事件上报
- 7. 服务调用
- 8. 委托事件
- 9. 自定义委托事件方法
CZGL.AliIoTClient 有7个委托事件,设置了默认的方法。 你可以通过下面的方法使用默认的方法绑定到委托事件中。
public void UseDefaultEventHandler()
1)默认的方法
收到服务器下发属性设置时:
public void Default_PubPropertyEventHandler(object sender, MqttMsgPublishEventArgs e)
收到服务器调用服务命令时:
public void Default_PubServiceEventHandler(object sender, MqttMsgPublishEventArgs e)
收到普通Topic、上传数据的响应等其它情况:
public void Default_PubCommonEventHandler(object sender, MqttMsgPublishEventArgs e)
收到服务器QOS为1的推送
public void Default_PubedEventHandler(object sender, MqttMsgPublishedEventArgs e)
当向服务器发送消息成功时:
public void Default_SubedEventHandler(object sender, MqttMsgSubscribedEventArgs e)
向服务器推送消息失败时:
public void Default_UnSubedEventHandler(object sender, MqttMsgUnsubscribedEventArgs e)
连接断开时
public void Default_ConnectionClosedEventHandler(object sender, System.EventArgs e)
2)方法的写法
不同的委托参数不同,有好几种类型,参考笔者的方法使用参数。
/// 一般的推送 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void Default_PubCommonEventHandler(object sender, MqttMsgPublishEventArgs e) { // handle message received string topic = e.Topic; string message = Encoding.ASCII.GetString(e.Message); Console.WriteLine("- - - - - - - - - - "); Console.WriteLine("get topic message,Date: " + DateTime.Now.ToLongTimeString()); Console.WriteLine("topic: " + topic); Console.WriteLine("get messgae :\n" + message); } /// <summary> /// 收到属性设置 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void Default_PubPropertyEventHandler(object sender, MqttMsgPublishEventArgs e) { // handle message received string topic = e.Topic; string message = Encoding.ASCII.GetString(e.Message); Console.WriteLine("- - - - - - - - - - "); Console.WriteLine("get topic message,Date: " + DateTime.Now.ToLongTimeString()); Console.WriteLine("topic: " + topic); Console.WriteLine("get messgae :\n" + message); } /// <summary> /// 收到服务调用 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void Default_PubServiceEventHandler(object sender, MqttMsgPublishEventArgs e) { // handle message received string topic = e.Topic; string message = Encoding.ASCII.GetString(e.Message); Console.WriteLine("- - - - - - - - - - "); Console.WriteLine("get topic message,Date: " + DateTime.Now.ToLongTimeString()); Console.WriteLine("topic: " + topic); Console.WriteLine("get messgae :\n" + message); } /// <summary> /// 收到服务器QOS为1的推送 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void Default_PubedEventHandler(object sender, MqttMsgPublishedEventArgs e) { Console.WriteLine("- - - - - - - - - - "); Console.WriteLine("published,Date: " + DateTime.Now.ToLongTimeString()); Console.WriteLine("MessageId: " + e.MessageId + " Is Published: " + e.IsPublished); } /// <summary> /// 向服务器推送成功 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void Default_SubedEventHandler(object sender, MqttMsgSubscribedEventArgs e) { Console.WriteLine("- - - - - - - - - - "); Console.WriteLine("Sub topic,Date: " + DateTime.Now.ToLongTimeString()); Console.WriteLine("MessageId: " + e.MessageId); Console.WriteLine("List of granted QOS Levels: " + Encoding.UTF8.GetString(e.GrantedQoSLevels)); } /// <summary> /// 推送失败 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void Default_UnSubedEventHandler(object sender, MqttMsgUnsubscribedEventArgs e) { Console.WriteLine("- - - - - - - - - - "); Console.WriteLine("Sub topic error,Date: " + DateTime.Now.ToLongTimeString()); Console.WriteLine("MessageId: " + e.MessageId); } /// <summary> /// 连接发生异常,断网等 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void Default_ConnectionClosedEventHandler(object sender, EventArgs e) { Console.WriteLine("- - - - - - - - - - "); Console.WriteLine("Connect Closed error,Date: " + DateTime.Now.ToLongTimeString()); }
相关文章推荐
- 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:8. 委托事件
- 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:4. 设备上报属性
- 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:7. 服务调用
- C#多线程-不同线程之间通过事件委托封送调用方法(转)
- # [高级版]阿里云IoT物联网平台通过规则引擎获取设备上下线状态
- Delegate,Action,Func,匿名方法,匿名委托,事件 (转载)
- 阿里云使用自定义镜像进行ECS跨帐号跨区域迁移的方法
- jquery事件委托的回调函数中调用全局变量的简单方法
- 关于listView中的自定义以后不响应onItemClick事件的解决方法
- 温故而知新:Delegate,Action,Func,匿名方法,匿名委托,事件
- FCKeditor键盘事件两种方法(自定义键盘事件,自带键盘事件)asp.net
- SSH Secure Shell Client 客户端乱码解决方法
- 在C++中模拟委托事件的方法(二)
- C#多线程-不同线程之间通过事件委托封送调用方法
- jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
- 委托和事件:第2页 将方法绑定到委托
- 初次接触WIN FORM,深入事件、委托、方法 ,深入看不到的C#探索。
- 取消事件所有委托方法
- C#委托、自定义、事件
- Oracle绿色客户端(Instant Client)配置方法