PiCockpit:在线/离线状态,和MQTT

在即将发布的PiCockpit版本中,我们将为通过picockpit-client连接的Pi提供在线状态跟踪。

形象

在线功能是由MQTT的遗嘱功能实现的。

你可以通过将你的Pi从网络上拔下来进行测试。

我拔掉了Pi的电源,在。 17:59:10

在大约 18:00:05 它被显示为脱机。

形象

这是为什么呢?

这是因为MQTT在MQTT Broker和客户之间商定的时间间隔后有一个keep-alive ping。

为了节省网络带宽,我们假设客户端继续存在--直到下一次ping失败。

如果客户没有作出应有的反应,客户的最后遗嘱信息将被发送到正确的订阅者手中。

换句话说:如果你的Pi断开连接,你会在PiCockpit中实时了解到大约一分钟后的情况!

对于未来,我们还计划引入推送信息,这样,即使你没有登录到PiCockpit,也可以得到客户端离线的通知。

如果网络回来了怎么办?

如果网络恢复了,picockpit-client(如果它仍在运行--即Pi处于正常状态)将在一定的超时后重新连接到MQTT客户端。

你的Raspberry Pi将再次显示为在线状态!

请不要期望这是即时的(PAHO MQTT客户端会在尝试重新连接之间暂停,如果我没记错的话,它等待的时间越长,间隔越长)。

形象

显示在线状态和相应的信息(在我开发时仍在显示)。

而这是关于客户端离线的信息(注意是JSON格式)。

{"在线状态":"在线", "$uuid":“4817713e-b9f6-11e9-9321-b827ebaefc47”, “$client”:“pi/000000007eaefc47”, “$ts”:1565273103.409718}

我很高兴决定用Vue.js做webfrontend的结果--它对这些状态变化非常好。