Node.js 如何在Node中优雅地结束HTTP2通信
如何优雅地结束节点中客户端和服务器之间的HTTP2通信 为此,必须使用相关方法和事件结束以下对象:Node.js 如何在Node中优雅地结束HTTP2通信,node.js,http2,Node.js,Http2,如何优雅地结束节点中客户端和服务器之间的HTTP2通信 为此,必须使用相关方法和事件结束以下对象: +---------------------+------------------+-----------------------+ | Object | Relevant Methods | Relevant Events | +---------------------+------------------+-----------------------+
+---------------------+------------------+-----------------------+
| Object | Relevant Methods | Relevant Events |
+---------------------+------------------+-----------------------+
| Http2Server | close | close |
| ServerHttp2Session | close | close, goaway |
| Http2ServerResponse | end | finish, close |
| ServerHttp2Stream | end, close | finish, end and close |
| ClientHttp2Session | close | close, goaway |
| ClientHttp2Stream | end, close | finish, end and close |
+---------------------+------------------+-----------------------+
我的想法是可能是这样的:
clientHttp2Stream.end() // close write side
clientHttp2Stream.close() // required?
然后
然后
及
但是,这会引发http2ServerRequest和serverHttp2Stream的中止
事件
如果未在流上调用
.close()
,则serverHttp2Session会引发一个可能正确的goaway
事件?您的代码是充当HTTP/2服务器还是客户端?如果您只编写服务器代码,clienthttpp2session
和clienthttpp2stream
类不适用。@Dai它是从streamsYeah继承来的,我刚才发现了这一点并删除了我的评论。@Dai-两者-我在问客户端和服务器应该如何优雅地结束通信。
serverHttp2Stream.end() // or http2ServerResponse.end()?
serverHttp2Stream.close()
serverHttp2Stream.on('end',()=>http2Server.close())
clientHttp2Stream.on('end',()=>clientHttp2Session.close())