7

我已经在我的 Apache 服务器上设置了 MOD_SPDY,现在想要改进我的客户端代码以使用 Netty 的 SPDY 实现通过 SPDY 通道将我的请求发送到服务器。

这是我第一次使用 Netty,所以我认为我需要以某种方式配置我的 Channel,然后通过它发送请求。问题是,似乎不太清楚如何配置通道,甚至在此之后,如何跟踪通道内可能同时执行的多个 HTTP 请求。

我用谷歌搜索并找到了 SPDY 包: http: //netty.io/docs/stable/api/org/jboss/netty/handler/codec/spdy/package-summary.html

但是那里的文档仍然很薄。我似乎没有找到任何使用该代码的示例,只有在最新版本中存在它的公告。

有人有关于如何构建 SPDY 通道然后通过它发送/跟踪多个请求和响应的示例吗?此外,当服务器不支持 SPDY 并且通道回退到标准 SSL 连接时,此功能将如何发挥作用?

4

2 回答 2

3

我可以在 Netty 和 SPDY 上找到的唯一示例是 SessionHandlersocket echo test的测试代码。我还没有让这个东西运行,但是你的客户应该制作由SpdyFrameCodec,SpdySessionHandler和你的处理程序组成的管道。

您的处理程序应该EchoHandler在会话测试中建模,因为这种方式SpdySessionHandler可以将原始帧解码为更有意义的帧,并按照 SPDY 协议的要求做一些事情。

至于后备,SpdyHttpCodecNetty 有从 SPDY 转换为 HTTP 的快照版本。这样,您可以根据 HTTP 构建客户端处理程序,并透明地接收通过 SPDY 或 HTTP 传入的消息。为此,需要实现类似于 端口统一示例的内容。

说了这么多。很少有实用程序类/处理程序有空间使所有这些成为“开箱即用”的体验。我想制作一个可行的示例,但现在缺少时间,并且代码太多,无法简单地将其粘贴在这里作为答案。

于 2012-04-10T08:51:34.080 回答
2

将 spdy 与 jetty 结合使用的示例并不多。我通常不是无耻推销的人,但我只是写了一个完整的例子,告诉你如何做你想做的事。我已将 netty 配置为在客户端支持时为 spdy 提供服务,并在 spdy 不可用时回退到 http。您可以在以下位置找到代码:http ://www.smartjava.org/content/using-spdy-and-http-transparently-using-netty

于 2012-04-28T07:52:42.763 回答