首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在控制器中使用socket.io

在控制器中使用socket.io
EN

Stack Overflow用户
提问于 2013-10-24 15:03:55
回答 3查看 20.5K关注 0票数 22

我只需要socket.ioemit消息到clients,如果一个新的对象被插入到数据库。因此,我的想法是直接从控制器的insert-method发出消息。在我的server.js文件中,我创建了socket.io object,并尝试让其他模块可以访问它:

var server = require('http').createServer(app);
var io = require('socket.io').listen(server);

//make socket io accessible for other modules
module.exports.io = io;

在我的控制器中,我尝试以这种方式使用socket.io:

var io = require('../server').io;
...
io.sockets.on("connection", function(socket){
  passportSocketIo.filterSocketsByUser(io, function (user) {
    return user.workingAt === socket.handshake.user.workingAt;
  }).forEach(function(s){
    s.send("news", insertedObject);
  });
});

现在我被卡住了。"connection“事件永远不会触发,因此不会发出消息。这是在separate文件中使用socket.io的正确方式吗?不幸的是,我找不到复杂的socket.io示例。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19559135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档