我有一个场景,其中网页最初由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即可获得有关如何使用它的示例。

10-05 20:53
查看更多