我一直在研究一个服务器应用程序,随着时间的推移会收到很多连接。为了能够处理这个问题,我一直在使用标准的Java NIO类实现非阻塞设计。但是有很多细节要处理,我更喜欢使用某种框架。我最好使用Spring Integration,但我找不到一些简单,有效的例子。
我正在评估Grizzly框架,它似乎提供了我需要的功能。我实现了他们的EchoServer example,但发现我无法Telnet到服务器并在控制台上将结果回显给我。他们的EchoClient应用程序按预期工作。
在我的情况下,我无法对尝试连接到我的客户做出任何假设,因此我必须能够支持从简单的telnet客户端到NIO客户端的所有内容。 Grizzly是否能够做到这一点,如果是这样的话?
答案 0 :(得分:0)
您正在使用的示例基于StringFilter实现的特殊输入格式。 StringFilter将字符串解码/编码为具有字符串长度前缀的字节序列。 确保telnet不使用相同的格式来编码字符串,这就是服务器不回显数据的原因。 为了使服务器与telnet一起工作 - 只需从服务器的FilterChain中删除一个StringFilter(注释掉这一行):
// filterChainBuilder.add(new StringFilter(Charset.forName("UTF-8")));