所以,我想知道如何在 node.js 中创建自定义事件,但我碰壁了。我很确定我误解了 express 的工作原理以及 node.js 事件的工作原理。
https://creativespace.nodejitsu.com这就是应用程序。
当用户创建一个新的“活动”(会发生很多次的事情)时,他们会发送一个 POST 请求。然后在我的路由中,如果 POST 成功,我想发出一个事件,告诉 socket.io 为该活动创建一个新的命名空间。
在我的路线文件中:
var eventEmitter = require('events').EventEmitter;
// Tell socket.io about the new space.
eventEmitter.emit('new activity', {activityId: body.id});
和socket.io:
// When someone creates a new activity
eventEmitter.on('new activity', function (data) { // this gives and error
var newActivity = '/activity?' + data.activityId;
io.of(newActivity).on('connection', function (socket) {
// Socket.io code for an activity
});
});
所以我得到的错误是 CANNOT CALL METHOD ON OF UNDEFINED 它指的是上面 socket.io 中的第 2 行。我想我搞砸了我的要求,也许......或者我不太了解事件是如何运作的。
任何帮助,甚至是对 Node.js 事件的良好阅读的参考都会震撼!
谢谢!!!