在 Node.js 个应用程序中处理外部触发器

Processing external triggers in Node.js applications

我有一个 Node.js 守护程序应用程序,它在我的 Debian 家庭服务器上 24/7 全天候运行。

我希望它能处理由 motion 生成的触发器,该程序监控安装在同一台机器上的摄像机的视频信号。 Motion 可以在某些事件上执行命令,例如当检测到运动或相机连接丢失时。

我可以编写一个脚本来处理这些事件并将它们记录在数据库中,在我的守护程序中我可以连续轮询数据库。但那将是非常低效的,对吧?

在 Node.js 应用程序中处理外部触发器的最佳方式是什么?

看看dnode。它可以让你做你正在寻找的东西。

在你的守护进程中你会有这样的东西。

var dnode = require('dnode');
var server = dnode({
    transform : function (eventObject, cb) {
        //handle the event

        cb(callbackDataHere)
    }
});
server.listen(5004);

然后您需要创建 Motion 将调用的命令

var dnode = require('dnode');

var d = dnode.connect(5004);
d.on('remote', function (remote) {

    var eventDataToSend = {}

    remote.transform(eventDataToSend, function (s) {
        //Do stuff with arguments sent back from the callback on the server
    });
});