我正在尝试设置一个接受和解码 HTTP/2 数据的 TCP 服务器。实际解析帧的代码可以在这篇文章中找到:
但是,我在设置服务器时遇到问题。连接被接受,但挂起framer.ReadFrame()
。这是一个代码示例:
// generate with: openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.pem -days 365 -nodes
cert, err := tls.LoadX509KeyPair("server.pem", "server.key")
if err != nil {
log.Fatal(err)
}
tlsCfg := &tls.Config{
Certificates: []tls.Certificate{cert},
NextProtos: []string{"h2"},
}
l, err := tls.Listen("tcp", ":8787", tlsCfg)
if err != nil {
log.Fatal(err)
}
defer l.Close()
conn, err := l.Accept()
if err != nil {
log.Fatalln(err)
}
defer conn.Close()
framer := http2.NewFramer(conn, conn)
frame, _ := framer.ReadFrame() // Here it hangs
我使用 curl 请求服务器
curl -v https://127.0.0.1:8787/ -k --http2
MYYA
相关分类