如何在NodeJS中捕获自定义事件

好吧,这可能是一个愚蠢的问题,我尝试过在这里和谷歌search,但似乎没有真正的答案,因为它只是不够具体的我目前的情况( 有像我知道的JS事件吨信息,被告知没有问题真的很愚蠢)。

我想在NodeJS中发出一个自定义的事件,只要达到一定的频率。 所以当我在播放一首歌的时候,它会超过80分贝,我想发出一个事件。

我如何在我的networking浏览器中捕获这个事件? 我可能需要启动服务器,我知道。 但是,我如何从我的服务器发送事件,更重要的是,我怎样才能抓住他们的客户端呢?

(所以我可以使用A帧,并做一些不错的视听)。

这是我目前的代码,目前我没有对我的服务器做任何事情,但我的audio分析(从Ableton)工作。

'use strict'; let Max4Node = require('max4node'); let EventEmitter = require("events").EventEmitter; let ee = new EventEmitter(); // Server let http = require('http'); let handleRequest = (request, response) => { response.end(`It works! ${request.url}`); } let server = http.createServer(handleRequest); const PORT=8080; server.listen(PORT, function(){ console.log(`Server listening on: http://localhost:${PORT}`); }); let max = new Max4Node(); max.bind(); // Event listeners ee.on('kick', (data) => { console.log(`kick ${data}`); }); ee.on('clap', (data) => { console.log(`clap ${data}`); }); ee.on('hat', (data) => { console.log(`hat ${data}`); }); // Observe the low-pass filtered track max.observe({ path: 'live_set tracks 0', property: 'output_meter_level' }) .on('value', function(val) { val > 0.8 ? ee.emit('kick', val) : null; }); // Observe the high-pass filtered track max.observe({ path: 'live_set tracks 3', property: 'output_meter_level' }) .on('value', (val) => { val > 0.8 && val < 0.9 ? ee.emit('clap', val) : null; val > 0.9 ? ee.emit('hat', val) : null; }); 

我希望有人能够更好地了解如何解决这种情况,欢迎提供反馈/提示!

你需要某种forms的从服务器到Web客户端的某种forms的事件 – 大家认为的第一个解决scheme就是WebSockets(它运行得非常好,特别是如果你用像Socket.IO这样的库抽象出来的话 )。 这使您可以实时地从服务器到客户端以及从客户端到服务器进行通信。

另一个select是使用服务器端事件 ,这是通过普通的HTTP完成的,并且在JavaScript中非常简单。 这允许服务器实时发送事件给客户端,但是是单向的。 如果您只需要将事件发送到浏览器,则值得一看。 (Emojitracker是使用这种技术build造的,创作者在这里多谈这个)