これはおそらくばかげた質問ですが、私はここやGoogleで検索しようとしましたが、実際にはそれほど具体的ではないので何も答えていないようです(トンのようです私が知っているJSイベントについての情報の、私は本当に愚かな質問もないと言われてきました。NodeJSでカスタムイベントをキャッチする方法
特定の頻度に達するたびにNodeJSでカスタムイベントを出したいとします。だから、私が曲を演奏しているとき、それは80dBを超えています。私はイベントを出したいです。
ウェブブラウザでこのイベントをキャッチするにはどうすればよいですか?おそらく私が知っているサーバーを起動する必要があります。しかし、サーバーからイベントを送信するにはどうすればよいのですか?もっと重要なのは、クライアントサイドでどのように捕捉するのですか?
(私はAフレームを使用して、素晴らしいオーディオビジュアライゼーションを行うことができるように)
これは私の現在のコードですが、現在私のサーバーは何もしていませんが、(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;
});
私は誰かがこの状況に取り組む方法についてより良い洞察を与えてくれることを願っています。フィードバック/ヒントは大歓迎です!
emitイベントの代わりに 'console.log'を実行すると出力/コンソールに何かがありますか? –
それは同じことをして、私の問題でもありません。私の現在のイベントリスナーは、現在の値をデシベルでコンソールに記録しているので、オブザーバー内のイベントエミッタを置き換えることはまったく同じです。私の問題は、私はサーバーを介してイベントを送信し、それらをクライアント側で捕まえたいということです。 –
** socket.io ** - http://socket.io/docs/ –