首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aws_sdk:如何识别我的设备是否连接到aws服务器

aws_sdk:如何识别我的设备是否连接到aws服务器
EN

Stack Overflow用户
提问于 2021-09-02 10:39:36
回答 1查看 53关注 0票数 1

我有一个设备(esp32s2),它启用了IoT并与AWS服务器通信。

该设备通过路由器连接到互联网。我想从设备上检查,路由器是否连接到互联网。如果没有连接,我需要立即断开mqtt代理的连接。

我知道aws_iot_yield正在发生,但是在断开连接后更改客户端状态(~5-10分钟)需要花费太多的时间。那么,有什么其他方法可以让我知道设备是连接到mqtt代理还是不使用AWS呢?

我希望避免使用using到某些地址/服务器,因为它将增加资源的使用。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-22 07:01:46

由于通过因特网与AWS服务器的连接取决于网络元素,因此了解是否连接到internet的唯一可靠方法是将包发送到一个已知地址并接收响应。最简单的方法是使用ICMP (ping)协议。通常,对ping最可靠的目的地是Google服务器8.8.8.8或8.8.4.4,这是一个集群服务,它总是在ping上响应。

您可以控制两个ping之间的暂停,以及您将在一个会话中发送多少个ping,以保留资源。

另一种方法是使用一个路由器,该路由器可以向监视设备发送消息,说明链路状态已经更改(例如SNMP陷阱)。但这不是完全可靠的方法,因为路由器无法检测到AWS服务器连接丢失的所有场景。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69028686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档