我对这个话题有一些非常基本的疑虑。 我有一个30年前在C,C ++中编写的遗留服务器,它支持套接字通信,但效果很好。 我正在编写一个基于Java的新客户端来连接到这个服务器,基本上我的目标是为企业应用程序公开服务(REST等)。
1)我应该采用基于简单java套接字的方法还是使用Netty或Apache-Mina,在这种情况下使用这些现代api可能会带来什么好处。
2)当使用基于NIO的IO时,服务器是否也需要是基于NIO的才能利用它,或者NIO客户端到旧服务器(非NIO)的效果与NIO服务器一样好
非常感谢
答案 0 :(得分:2)
1)我应该采用基于简单java套接字的方法还是使用Netty或Apache-Mina,在这种情况下使用这些现代api可能会带来什么好处。
我认为您的意思是使用普通的Java套接字来实现HTTP / REST-ful API。
这是一个坏主意。理论上这是可能的,但最终会进行大量不必要的编码。并且很可能你不会正确地实现HTTP 1.1规范......这将导致进一步的问题。
至于其他人,我会看看他们,将他们的功能与您所需的功能进行比较并根据这个决定......以及如何易于使用他们看起来像你。
2)当使用基于NIO的IO时,服务器是否也需要是基于NIO的才能利用它,或者NIO客户端到旧服务器(非NIO)的效果与NIO服务器一样好
您在客户端和服务器端(NIO与非NIO)之间的关系是相互独立的。实际上,如果你正确地做REST,客户端和服务器端甚至不需要用同一种语言编程!