使用SPDY和Netty

时间:2012-04-09 21:00:30

标签: java netty spdy

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

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

您的处理程序应该在会话测试中EchoHandler之后建模,因为SpdySessionHandler方式可以将原始帧解码为更有意义的帧,并根据SPDY协议的要求执行某些操作。

至于支持秋季,Netty的快照版本中有SpdyHttpCodec,可以从SPDY转换为HTTP。这样,您就可以根据HTTP构建客户端处理程序,并通过SPDY或HTTP透明地接收消息。要做到这一点,需要实现类似的东西 port unification示例。

所有这一切。几乎没有实用程序类/处理程序可以使所有这些成为“开箱即用”的体验。我想做一个有效的例子,但是现在我没有时间,并且会有太多的代码只是将它粘贴在这里作为答案。

答案 1 :(得分:2)

使用带码头的spdy的例子并不多。我通常不是一个无耻的晋升的人,但我刚刚写下了一个关于如何做你想做的事情的完整例子。我已经将netty配置为在客户端支持时为spdy提供服务,并在spdy不可用时返回http。您可以在http://www.smartjava.org/content/using-spdy-and-http-transparently-using-netty

找到代码