gpt4 book ai didi

Tomcat 9 http/2 网络套接字

转载 作者:行者123 更新时间:2023-11-28 22:39:42 26 4
gpt4 key购买 nike

我试图在我的网络应用程序中使用 http/2。问题是我的 websocket 连接在使用 http/2 时似乎不起作用。

我使用一个javascript文件
var webSocket = new WebSocket('wss://xxx.de:8443/urlto/websocket');

我在 server.xml 中的 Tomcat 连接器如下所示:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="/path/to/privkey.pem"
certificateFile="/path/to/cert.pem"
certificateChainFile="/path/to/chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>

像这样启动服务器时,我收到一条错误消息 connection closed before receiving a handshake response

如果我不包括 <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />部分,websocket 连接没有问题。

最佳答案

WebSocket 握手没有为 HTTP/2 定义,因此如果你想使用 ws,你需要使用 HTTP/1.1。

有一个 RFC 试图在 HTTP/2 上定义 WS,但它从未完成。它已被替换为 https://datatracker.ietf.org/doc/draft-mcmanus-httpbis-h2-websockets/ ,我们必须看看这是否会是这样。

关于Tomcat 9 http/2 网络套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47598332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com