我们有一个已经在运行的MQTT设置,用于智能家居设备和远程服务器之间的通信,用于远程控制设备。现在我们想把我们的设备与Google和Alexa集成起来。这两者使用HTTP与第三方设备云进行通信。
我已经为Google实现了这个功能,并且在收到对设备云的请求后,请求被转换为MQTT。然后将此MQTT请求发送到智能家居设备。设备云等待几秒钟才能收到来自智能家居设备的回复。如果在预定义的时间内没有收到回复,那么它会将失败的HTTP响应发送到Google,否则就会发送接收到的回复。
有更好的方法来处理这件事吗?因为这是一个商业项目,所以我想让它以正确的方式实现。
发布于 2019-02-01 09:17:40
对于诸如Google或Amazon这样的黑匣子类型系统,这是正确的方法。如果有的话,您可以根据发出的请求类型对超时进行微调。换句话说,如果某个请求花费的时间较长,则只需等待该类型的请求就可以了。
但是,在黑盒系统应该如何工作和它实际如何工作之间进行区分是很重要的。超时是为了保护您免受完全没有响应的问题类型的影响。也许这不是它的工作方式,但你应该为所有的可能性做好准备。同样,您应该为收到无法正确解析的响应做好准备(这里的建议是:记录该响应并创建一个错误报告,以便在这种情况下发送给您)。
如果没有意外的结果,那么您的web应用程序的行为将保持一致。在有意想不到的结果的情况下,你的web应用程序的行为仍然是一致的。这是与黑盒系统通信的基础。
https://softwareengineering.stackexchange.com/questions/386463
复制相似问题