我有一個最初由HTTP服務的網頁。點擊提交後,它會發送一些數據到服務器,並做很少的Web服務,這將需要很長的時間。我需要快速顯示響應頁面,完成Web服務作業後,必須在先前加載的同一頁面中顯示結果。處理js和套接字io的響應
通過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);
});
});
'glitr-router'和'glitr-router-client'允許來自服務器和連接客戶端的socket.io響應功能,就像你在expressjs中一樣。它還支持REST端點,因此從REST到socket.io的轉換可以無縫連接。 – X0r0N 2017-12-06 10:54:55