在golang的http2中无法使用流媒体

在golang的http2中无法使用流媒体,go,streaming,http2,Go,Streaming,Http2,如何在歌朗重复使用http2流 大家好,最近我尝试了很多方法重用一个流来发送http2数据,但是失败了,我在http2中没有找到很多相关的解决方案,有人能给我一些提示或演示吗 client := http.Client{ Transport: &http2.Transport{ DialTLS: func(network, addr string, cfg *tls.Config) (net.Conn, error) {

如何在歌朗重复使用http2流

大家好,最近我尝试了很多方法重用一个流来发送http2数据,但是失败了,我在http2中没有找到很多相关的解决方案,有人能给我一些提示或演示吗

client := http.Client{

        Transport: &http2.Transport{
            DialTLS: func(network, addr string, cfg *tls.Config) (net.Conn, error) {
                return net.DialTimeout(network, addr, time.Second)
            },
                AllowHTTP: true,
        },
    }

    resp, err := client.Get(path)

我尝试使用resp作为客户机,并向该resp写入数据以将数据发送到服务器。这是正确的方法吗?

在HTTP/2流中是短暂的,对应于请求/响应交换。实际上,响应的结尾关闭了流。如果底层连接正在使用HTTP/2,则通过
客户端.Get发出另一个请求将自动在连接上打开一个新流。

在HTTP/2流中是短暂的,并且对应于请求/响应交换。实际上,响应的结尾关闭了流。如果基础连接使用HTTP/2,则通过
客户端发出另一个请求。Get
将自动在连接上打开一个新流。

也许您应该改为建立一个websocket。也许您应该改为建立一个websocket。谢谢您的回答,但是我可以使用从
client.Get获得的resp将数据发送到服务器吗?如果是,如何发送?您不能使用
resp
将数据发送到服务器,除非我对您的问题有所遗漏。你能详述一下你想要达到的目标吗?当然。我想打开一个到服务器的流,并通过这个流将数据发送到服务器,这样当我收到一些数据时,我可以处理它并使用这个流将其发送到服务器。目前我使用
func(c*客户端)Post(url、contentType字符串、body io.Reader)(resp*Response、err error)
,对于第三个参数,我实现了自己的Reader函数。以前我使用了
bytes.NewBuffer
函数,但它给了我错误,比如意外的EOF。我想知道实现此功能的正确方法是什么?谢谢您的回答,但是我可以使用从
客户端获取的resp.Get
将数据发送到服务器吗?如果是,如何发送?您不能使用
resp
将数据发送到服务器,除非我对您的问题有所遗漏。你能详述一下你想要达到的目标吗?当然。我想打开一个到服务器的流,并通过这个流将数据发送到服务器,这样当我收到一些数据时,我可以处理它并使用这个流将其发送到服务器。目前我使用
func(c*客户端)Post(url、contentType字符串、body io.Reader)(resp*Response、err error)
,对于第三个参数,我实现了自己的Reader函数。以前我使用了
bytes.NewBuffer
函数,但它给了我错误,比如意外的EOF。我想知道实现这个功能的正确方法是什么?