我有一个场景,其中网页最初由HTTP服务。单击提交后,它将向服务器发送一些数据,并执行少量的Web服务,这将花费很长时间。我需要快速显示响应页面,并且在完成Web服务作业之后,必须在先前加载的同一页面中显示结果。
通过使用HTTP处理程序处理所有请求,然后通过套接字io传递结果,是否可以做到这一点?
我希望写一些类似的东西。
var httpd = require('http').createServer(handler);
var io = require('socket.io').listen(httpd);
var fs = require('fs');
httpd.listen(4000);
function handler(req, res) {
fs.readFile(__dirname + '/index.html',
function(err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
}
);
}
io.sockets.on('connection', function (socket) {
socket.on('clientMessage', function(content) {
setTimeout(function () {
socket.emit('serverMessage', "web service complete");
}, 5000);
});
});
最佳答案
是。只需查看一个socket.io webpage即可获得有关如何使用它的示例。