如何使用Node.js http.createServer
聽POST請求。如果請求快速完成,所有工作都很好。如果請求完成時間> 5秒,我沒有迴應給客戶端。套接字超時Node.js的
上創建的套接字添加的事件監聽器:
server.on('connection', function(socket) {
log.info('SOCKET OPENED' + JSON.stringify(socket.address()));
socket.on('end', function() {
log.info('SOCKET END: other end of the socket sends a FIN packet');
});
socket.on('timeout', function() {
log.info('SOCKET TIMEOUT');
});
socket.on('error', function(error) {
log.info('SOCKET ERROR: ' + JSON.stringify(error));
});
socket.on('close', function(had_error) {
log.info('SOCKET CLOSED. IT WAS ERROR: ' + had_error);
});
});
上了車請求中的消息(之後開始後約10秒):
info: SOCKET TIMEOUT
info: SOCKET CLOSED. IT WAS ERROR: false
但在客戶端套接字沒有得到封閉,所以客戶端等待響應。請求結束成功,響應已發送(關閉套接字!),但客戶端仍在等待。
不知道如何阻止這些超時。從代碼中刪除所有超時。試圖添加KeepAlive,沒有結果。
socket.setKeepAlive(true);
如何防止socket bultin超時?
1000 * 60 * 300不是5分鐘,這是5小時 – airato