我正在开发一个web应用的原型,以使用Firebase库持续监控我的nest是否有更新,我想讨论一下实现这一点的方法。Nest有移动应用程序和web应用程序的例子,它们使用面向nest开发人员的用户端javascript,但没有使用node.js实现持续监控的例子。我希望在这里讨论一些想法,而不是一个有效的例子。
举一个我想做的例子:如果我的烟雾报警器响了,我想给我和我的家人发送一封电子邮件爆炸(发出爆炸的机制并不重要)。我正在使用node.js和express.js,我不想打开网页来监控我的家。因此,我希望在服务器端实现我的监控。
我目前的计划是将该功能合并到我的路由控制器中使用的一个类中,以便用户可以向URL发出请求以激活监控,并在用户离开网站后保持连接和相关数据。在我的测试中,在我断开连接后,web应用程序会继续监控我的nest,但我不确定连接最终是否会超时。无论如何,连接问题很常见,所以这是我无论如何都需要解决的问题。
因此,以下是我正在考虑的一般问题:
在路由/控制器中放置监控代码是否合适?或者像Ruby on Rails (我看到了一些关于使用RESTful流的东西)这样的框架会不会更适合持续监控?
应该如何存储监控连接的开销数据(如device_ID)?有没有比创建“连接”对象更好的存储开销数据的方法呢?
最后,监控连接最终会超时吗?无论如何,有什么方法可以重新建立中断的连接(我阅读了.onDisconnect的文档,但它不支持自定义回调)?
发布于 2014-08-09 11:55:48
我已经编写了几个node.js服务器,它们维护与Firebase的持久连接,并在相关数据发生变化时采取行动。我觉得这太棒了。Firebase API在服务器和客户端上实际上是相同的,因此您可以像往常一样订阅数据,但您也可以(可选)提供身份验证密钥,并拥有对整个数据库的完全访问/控制权限:
Firebase = require("firebase")
ref = new Firebase("https://<my firebase>.firebaseio.com")
ref.auth(<my key>)
ref.child("smoke-status").on("value", function(snap) {
if (snap.val() == "FIRE") {
// send email
}
})https://stackoverflow.com/questions/25005224
复制相似问题