首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure-IoT -树莓pi3永久脚本已退出,代码为:7

Azure-IoT -树莓pi3永久脚本已退出,代码为:7
EN

Stack Overflow用户
提问于 2017-10-24 20:49:38
回答 1查看 130关注 0票数 0

我正在运行一个永久脚本,将数据从raspberry pi 3发送到azure-iot-hub,使用以下命令,root@raspberrypi3:~#永久启动/home/pi/azure/iam/ble_azure.js

在工作了大约1.5天后,我停止了在auzre-iot-hub上收到消息,当我检查永久列表时,我得到了以下信息:

代码语言:javascript
复制
root@raspberrypi3:~# forever list
info:    Forever processes running
data:        uid  command         script                          forever pid  id logfile                 uptime         
data:    [0] NWgI /usr/bin/nodejs /home/pi/azure/iam/ble_azure.js 8990    3784    /root/.forever/NWgI.log 0:21:17:38.742 

当我检查日志文件时,我得到了这个错误消息:

代码语言:javascript
复制
/home/pi/azure/iam/node_modules/applicationinsights/AutoCollection/Exceptions.js:27
                        throw error;
                        ^
NotConnectedError: mqtt.js returned client disconnecting error
    at translateError (/home/pi/azure/iam/node_modules/azure-iot-device-mqtt/lib/mqtt-translate-error.js:25:11)
    at MqttTwinReceiver._handleError (/home/pi/azure/iam/node_modules/azure-iot-device-mqtt/lib/mqtt-twin-receiver.js:201:42)
    at /home/pi/azure/iam/node_modules/azure-iot-device-mqtt/lib/mqtt-twin-receiver.js:64:18
    at MqttClient._checkDisconnecting (/home/pi/azure/iam/node_modules/mqtt/lib/client.js:314:7)
    at MqttClient.subscribe (/home/pi/azure/iam/node_modules/mqtt/lib/client.js:423:12)
    at /home/pi/azure/iam/node_modules/azure-iot-device-mqtt/lib/mqtt-twin-receiver.js:62:22
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)
error: Forever detected script exited with code: 7
error: Script restart attempt #34
state has changed poweredOn
started scanning
[IoT hub Client] Connect error: mqtt.js returned premature close error

通过日志文件,mqtt错误不断发生多次,并永远成功地处理了它,我不明白为什么在1.5天后,我得到了这个错误:

代码语言:javascript
复制
**error: Forever detected script exited with code: 7
error: Script restart attempt #34**

还有为什么我一直收到这样的mqtt错误,为什么它总是断开连接?

代码语言:javascript
复制
**NotConnectedError: mqtt.js returned client disconnecting error**


Forever --version 
v0.15.3

root@raspberrypi3:~# uname -a
Linux raspberrypi3 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-10-25 03:14:35

如果您正在使用Client.fromConnectionString实例化客户端对象,则SDK每隔45分钟断开一次连接并重新连接,以更新共享访问签名令牌。(使用不同身份验证机制的AMQP不会发生这种情况)。这可能是因为在重新建立连接时,客户端遇到了我们一直在跟踪in this issue的“过早关闭”错误。

有两件事可以帮助限制与断开/重新连接相关的潜在错误:

最后但并非最不重要的一点是,SDK的下一个版本(1.2.0)将包含一个重试/重新连接逻辑,它将比以前更加健壮。我会更新这个问题,以便在它发布时指出它。

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

https://stackoverflow.com/questions/46911077

复制
相关文章

相似问题

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