Http 如何返回多个响应

Http 如何返回多个响应,http,go,httpresponse,Http,Go,Httpresponse,我读过异步响应和, 我尝试使用golang返回多个响应, 但我不知道我怎么能做到 我的例子是: package main import ( "fmt" "io/ioutil" "log" "net/http" ) func main() { http.HandleFunc("/", multiResponse) http.ListenAndServe(":8080", nil) } func multiResponse(w http.Resp

我读过异步响应和,
我尝试使用golang返回多个响应, 但我不知道我怎么能做到

我的例子是:

package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/", multiResponse)
    http.ListenAndServe(":8080", nil)
}

func multiResponse(w http.ResponseWriter, r *http.Request) {
    go func() {
        resp, err := http.Get("https://www.google.com.eg/search?q=hello")
        if err != nil {
            log.Println(err)
        }

        body, err := ioutil.ReadAll(resp.Body)
        if err != nil {
            log.Println(err)
        }

        // w.WriteHeader(http.StatusOK)
        // w.Write(body)
        fmt.Fprintln(w, string(body))

        resp.Body.Close()

        fmt.Println("done...")
    }()

    w.WriteHeader(http.StatusAccepted)
}
有什么例子可以理解异步响应吗

编辑:
我的意思是关于多重反应,
当我收到客户的请求时,我会立即发送,
在另一个goroutine中,其他进程工作,然后在完成发送后使用一些数据。

HTTP响应中的多重响应是什么意思?您指的是分块/增量响应写入吗?当处理程序返回时,http/服务器完成响应。您需要添加一个等待组或其他一些同步来阻止处理程序,直到goroutine完成。一种更简单的方法是删除goroutine并执行hander的goroutine中的所有代码。我编辑了我的问题。您可能希望查看go通道以获得异步响应。您试图实现什么?HTTP/1.x通常是单请求->单响应。您可能会看到WebSocket,甚至HTTP/2.0服务器推送。您所说的HTTP响应中的多响应是什么意思?您指的是分块/增量响应写入吗?当处理程序返回时,http/服务器完成响应。您需要添加一个等待组或其他一些同步来阻止处理程序,直到goroutine完成。一种更简单的方法是删除goroutine并执行hander的goroutine中的所有代码。我编辑了我的问题。您可能希望查看go通道以获得异步响应。您试图实现什么?HTTP/1.x通常是单请求->单响应。您可以查看WebSocket,甚至HTTP/2.0服务器推送。