在 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
});
});
我有一个 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
});
});