机场无法上云主要存在两类问题:机场网络无法与云端互通,以及云端逻辑处理错误。
检查机场网络与云端网络是否连通
首先需要检查机场网络与云端网络是否连通,可以按照以下方案进行排查:
注意:以下操作的前提是,笔记本与机场网络处于同一个网络环境,可以将机场的有线/4G Dongle插入笔记本。
1、使用ping命令测试
1.1、使用ping命令执行成功的结果如下图所示,执行ping成功,证明机场和云端服务器的网络是可以连通的。然后需要通过telnet命令校验机场能否访问到云端的mqtt端口,如1883端口,因为1883端口可能被防火墙阻挡,机场无法访问。
1.2、使用ping命令执行失败的结果如下图所示,执行ping失败,可能是因为云端禁用了ping命令。如果确认云端禁用了ping命令,则需要继续通过telnet命令进行验证。如果不确定云端是否禁用ping命令,也可以继续使用telnet命令进行测试。
2、使用telnet测试端口。注意:默认mqtt的tcp连接端口为1883,如果您使用的是示例代码,那么机场上云使用的端口就是1883端口。
2.1、使用telnet成功执行结果如下图所示,出现这个结果说明机场可以访问到mqtt服务器的端口,可以继续通过mqtt客户端进行测试。telnet的命令格式为:telnet <ip/域名> <port>
2.2、使用telnet失败执行结果如下图所示(下图所示的情况均为失败),telnet失败,说明机场无法访问云端的mqtt服务端口,可能该端口没有打开或被防火墙阻挡,需要开发者自行排查网络环境问题。
2.2.1、报错Connection refused
2.2.2、终端不断尝试,如果超过5秒仍未收到结果,也是机场连接端口失败。
3、使用mqttx测试,mqttx是mqtt的一款客户端工具,这里以mqttx为例进行说明。
3.1、使用mqttx连接mqtt服务器,成功结果如下图所示,出现连接成功,说明机场可以通过下发的参数连接上mqtt服务器。到这一步说明机场和云端的网络没有问题,配置的mqtt连接参数也没有问题,需要根据配置机场时的提示错误信息进行排查。
出现Connected,并且一段时间后,连接没有断开,可以正常收发数据,说明下发的mqtt连接参数也没有问题。
3.2、失败结果如下图所示,出现连接失败,说明可能是mqtt服务没有正常启动,1883端口被其他服务占用,或者配置的用户名和密码错误等原因,需要开发者自行排查mqtt服务是否正常启动。
检查设备绑定码是否准确
遥控器连接机场后,Pilot2会识别到机场,如果配置过程中出现了报错信息,机场会通过Pilot2弹框进行展示。如果Pilot2中出现以下错误:组织ID或设备绑定码错误,如下图所示。
出现该报错后,可以按照以下方案进行排查:
1、检查遥控器是否填写了默认的组织ID,默认的组织ID为qwe,组织ID是非必填项,但是我们提供的示例代码中使用了这个字段进行校验,因此使用示例代码时必须填写这个值。示例代码中没有使用组织ID字段,只需要配置绑定码为qwe即可,组织ID可以不填,也可以任意填写一个值。
Pilot2配置中正确填写组织ID的示例如下,如果填写了默认的绑定码qwe后,成功上云,则上云流程没有问题;如果上云依然失败,则需要继续查询数据库中的绑定码是否有更改。
2、在数据库中查询manage_workspace表中的bind_code值,并在遥控器中配置与数据库中一致的bind_code值。在配置一致后,尝试是否能成功上云。如果依然无法成功上云,或者机场上云成功一段时间后自动下线,则需要继续分析。
查询数据库记录的截图如下:在最后一个字段中可以看到bind_code的值。
3、机场上线一段时间后自动下线。这是因为机场内部需要校验appLicense,需要在后端的application.yml文件中正确配置appLicense信息。正确配置的截图如下:
请务必确保正确复制申请的appLicense信息。如果正确填写后,机场依然过一段时间自动下线,请拉取后端日志并向技术支持提供帮助。
评论
0 条评论
请登录写评论。