node.js和socket.io的一个问题
发布于 5个月前 作者 modispy 312 次浏览 来自 问答

现在是这样的, 我client端和server端都写好了 sever端socket.io 服务器在www这个文件中(用的是express4.x,和在app.js是一样的), 现在有一个请求,路由为/res,这个响应时间比较长,我想用socket.io把结果推送回去, 最后的消息是在res.js这个文件中,我怎么用www中的socket发送啊

7 回复

楼主的描述好抽象… 为什么不直接都用 socket.io 算了?

: client端和server端都写好了 sever端socket.io 服务器在www这个文件中 同不明白,既然socket.io的架子都搭好了,就用socket.io推送信息就可以了。

我猜测你的路由文件(比如:route.js)中处理路由的代码(比如:app.get('/res', function (req, res) {}) )要用socket这个对象处理业务逻辑,但是socket对象在www里面,所以捉鸡了。 快速的解决方法是把io这个对象暴露出来,然后在路由中引用他(需要注意的是:在www这个文件下这样做并不好)

www

    var io = require('socket.io')(server)
    module.exports = io

route.js

    var io = require('path/to/www')
    res.get('/res', function (req, res) { io.on('connection', function () {}) })

@jiyinyiyong 恩恩已经解决了。直接用socket.io推送的…

@klamtlne 恩恩已经解决了。直接用socket.io推送的…

@leapon 恩恩已经解决了。直接用socket.io推送的…

回到顶部