首页 > 解决方案 > Http 服务器关闭 tcp 会话

问题描述

我尝试将图像发送到 http 服务器

客户:

const http = require('http')
const fs = require('fs')
const options = {
    hostname: "localhost",
    port:3000,
    method: 'POST',
    headers:{
        'Content-type':'image/jpg',
    },
    
}

const req = http.request(options,res=>{console.log();})

    fs.readFile('./someimage.jpg',(err,data)=>{
        req.setHeader('Content-length',data.length)
        req.end(data)
    })

服务器:

    const http = require('http');
const fs = require('fs')
http.createServer((request,response)=>{
    request.on("data",(chunk)=>{
       console.log("here");
        fs.appendFile('./test.jpg',chunk,(err)=>{console.log(err);})
    })
    response.setHeader('Access-Control-Allow-Origin', '*');
    response.setHeader("Access-Control-Allow-Methods","POST") 
    response.end()
}).listen(3000)

如果图像很小,一切都可以。但是当我尝试发送 30 MB 图像时。我收到经济重置错误。我检查了wireshark,发现在我的服务器发送TCP ZeroWindow之后,服务器发送了rst tcp(86毫秒之后)。我该如何解决?

线鲨

标签: javascriptnode.jshttp

解决方案


推荐阅读