undertow服务器分析
即将发布的JBoss Application Server版本将不再使用Tomcat作为集成的Web服务器,而是将其替换为undertow 。 undertow的体系结构基于可通过Builder API动态添加到服务器的处理程序。 这种方法类似于在Node.js中构造Web服务器的方式。 它使开发人员可以轻松地将Underwow Web服务器嵌入到其应用程序中。 由于功能是通过Builder API完成的,因此只能添加一个人的应用程序中真正需要的功能。 除此之外,undertow支持WebSockets和版本3.1中的Servlet API。 它可以作为阻塞服务器或非阻塞服务器运行,据说,首次测试已经证明Undertow是用Java编写的最快的Web服务器。
由于所有这些听起来很有希望,所以让我们尝试设置一个简单的websocket服务器。 和往常一样,我们从创建一个简单的Java项目开始,并添加undertow maven依赖项:
<dependency>
<groupId>io.undertow</groupId>
<artifactId>undertow-core</artifactId>
<version>1.0.0.Beta20</version>
</dependency>
使用undertow的Builder API,我们的buildAndStartServer()方法如下所示:
public void buildAndStartServer(int port, String host) {
server = Undertow.builder()
.addListener(port, host)
.setHandler(getWebSocketHandler())
.build();
server.start();
}
我们只添加一个侦听器,该侦听器指定用于侦听传入连接的端口和主机,然后添加一个websocket处理程序。 由于websocket处理程序代码更加全面,我将其放入自己的方法中:
private PathHandler getWebSocketHandler() {
return path().addPat