如何在Node.js中发出事件名称是dynamic的?

我正在尝试在Node.js中创builddynamicEventEmitter。 那么,事件名称怎么可以是dynamic的。

代码:

var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); num = "1"; fs = require('fs'); server.listen(4000); function handler(req,res){ fs.readFile(__dirname + '/index.html', function(err,data){ res.writeHead(500); res.end(data); }); } app.get('/', function(req, res){ res.sendfile(__dirname + '/index.html'); }); io.sockets.on('connection', function(socket){ socket.on('send message'+num, function(data){ io.sockets.emit('new message'+num, data); }); }); 

现在在这个例子中,我给了值“1”,但我希望它dynamic,所以我怎么能从一个HTML文件的dynamic值。 所以,发出事件名称可以是dynamic的。

请让我知道,build议我一些解决scheme。

使用dynamic创build的消息名称很less有正当的理由,这严重地使试图聆听这些消息的人的生活复杂化(他们可能不知道要听的消息名称)。 使用一个消息名称,然后将该数字放在消息所在的数据结构中。

发送:

 io.sockets.emit('new-message', {data: data, item: num}); 

接收:

 socket.on('new-message', function(msgData){ if (msgData.item === xx) { // handle just a particular message number here } } 
Interesting Posts