Tomcat8如何处理websocket升级请求

Tomcat8如何处理websocket升级请求,tomcat,websocket,tomcat8,Tomcat,Websocket,Tomcat8,我想了解tomcat中websocket升级请求的处理?它是通过过滤器还是servlet完成的?TOmcat-8如何处理ws-upgrade请求 谢谢, Anuj是一种完全不同的协议。它们不是由过滤器或servlet处理的,而是由端点处理的。要创建它们,您可以使用它们来扩展端点类,但与JavaEE中的其他内容一样,您现在可以使用注释。有关更多信息,请查看最新文档 要在客户端创建它们,请求以HTTP(可能是JavaScript)启动,但在Tomcat上,端点正在侦听,而不是您的普通servlet。

我想了解tomcat中websocket升级请求的处理?它是通过过滤器还是servlet完成的?TOmcat-8如何处理ws-upgrade请求

谢谢,

Anuj是一种完全不同的协议。它们不是由过滤器或servlet处理的,而是由端点处理的。要创建它们,您可以使用它们来扩展端点类,但与JavaEE中的其他内容一样,您现在可以使用注释。有关更多信息,请查看最新文档


要在客户端创建它们,请求以HTTP(可能是JavaScript)启动,但在Tomcat上,端点正在侦听,而不是您的普通servlet。

Tomcat使用筛选器查找启动WebSocket连接的HTTP升级请求,并将其传递给适当的处理程序(如果看到)


使用ServletContainerInitializer配置筛选器。筛选器的位置将取决于web应用程序配置的其他筛选器以及web应用程序将它们放置在筛选器链中的位置。例如,web应用程序可能希望在web套接字筛选器之前放置一个安全筛选器,Tomcat允许这样做。

这是正确的!!但是Tomcat必须找到处理websocket升级请求的方法。我想知道Tomcat是如何处理升级请求的?例如,jetty前面有一个ws-upgrade过滤器,它会在请求到达过滤器时立即进行升级。我检查了源代码,了解到“org/apache/tomcat/websocket/server/WsFilter.java”负责websocket的升级。请让我知道我的理解是否正确?另外,这个过滤器将是第一个被调用的过滤器,tomcat指定的任何其他过滤器顺序?请小心,这是
javax.websocket
规范未定义的行为。这是针对该特定规范的开放性错误-请参阅@MarkThomas:How-do-check请求以确定它是websocket请求还是HTTP请求?Tomcat查找websocket规范中定义的HTTP升级头以及注册端点的匹配URI。如果两者都找到了,那么请求将被传递到WebSocket,否则过滤器只会将其传递到链中的下一个过滤器。