CNode

node.js和socket.io的一个问题

问答
Mmodispy发布于12 年前最后回复12 年前7 回复4936 浏览0 收藏

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

查看回复

回复 (7)

J
jiyinyiyong#1·12 年前

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

L
leapon#2·12 年前

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

K
klamtlne#3·12 年前

我猜测你的路由文件(比如: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 () {}) })
M
modispy#4·12 年前
引用 jiyinyiyong楼主的描述好抽象... 为什么不直接都用 socket.io 算了?

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

M
modispy#7·12 年前

@littlehaker @klamtlne @leapon

参与回复
登录后即可参与回复。登录