Go Get请求-写入:断管

Go Get请求-写入:断管,go,tcp,gorilla,Go,Tcp,Gorilla,我为这个可能很愚蠢的问题提前道歉。 我想在调用某个URL时发送图像(图像/jpeg)。当我很少执行get请求时,一切似乎都正常工作,但是当我使用apache基准测试同一个端点时,我遇到了这个错误 写入tcp[::1]:8080->[::1]:65255:写入:断开的管道 下面是我要执行的代码: func CameraImage(w http.ResponseWriter, r *http.Request) { //log.Println("Serving", r.URL) w.

我为这个可能很愚蠢的问题提前道歉。 我想在调用某个URL时发送图像(图像/jpeg)。当我很少执行get请求时,一切似乎都正常工作,但是当我使用apache基准测试同一个端点时,我遇到了这个错误

写入tcp[::1]:8080->[::1]:65255:写入:断开的管道

下面是我要执行的代码:

func CameraImage(w http.ResponseWriter, r *http.Request) {
    //log.Println("Serving", r.URL)

    w.Header().Set("Access-Control-Allow-Origin", "*")
    w.Header().Set("Content-Type", "image/jpeg")

    vars := mux.Vars(r)
    path := vars["camera_path"]

    camera := getService().GetByPath(path)

    if camera.Image == nil {
        return
    }

    err := jpeg.Encode(w, camera.Image, nil)
    if err != nil {
        log.Println(err)
    }
}

谢谢你的帮助
Kuba

cpu(等待)做什么?此方法camera:=getService()。GetByPath(path)从mapIt返回camera对象看起来客户端可能会在收到响应之前断开连接。不要使用
ab
。它是http/1.0,甚至可能不使用keepalive。很可能您刚刚耗尽了服务器上的临时端口或文件描述符。我认为您是对的,ab是问题所在。谢谢cpu(等待)做什么?此方法camera:=getService()。GetByPath(path)从mapIt返回camera对象。看起来客户端可能会在收到响应之前断开连接。不要使用
ab
。它是http/1.0,甚至可能不使用keepalive。很可能您刚刚耗尽了服务器上的临时端口或文件描述符。我认为您是对的,ab是问题所在。谢谢