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