- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Jetty 9 设置 WebSocket 处理程序。我见过使用 WebSocketHandler 或 WebSocketServlet 的示例。
这就是我正在做的事情:
public class WebSocketServer{
public WebSocketServer(){
WebSocketHandler wsHandler = new WebSocketHandler() {
@Override
public void configure(WebSocketServletFactory factory) {
factory.register(MyWebSocketHandler.class);
}
};
}
}
@WebSocket
public class MyWebSocketHandler{...}
这是他们正在做的事情:(摘自http://www.eclipse.org/jetty/documentation/current/jetty-websocket-server-api.html)
@WebServlet(name = "MyEcho WebSocket Servlet", urlPatterns = { "/echo" })
public class MyEchoServlet extends WebSocketServlet {
@Override
public void configure(WebSocketServletFactory factory) {
factory.register(MyEchoSocket.class);
}
}
实际的区别是什么?最好的方法是什么?
谢谢。
最佳答案
这 2 个选择反射(reflect)了人们在为 Jetty 编写应用程序时使用的 2 种基本技术。
WebSocketHandler
是组织 Web 应用程序的更基本的处理程序技术的一部分。这些处理程序非常基础,代表了 Jetty 中请求处理的基本构建 block 。从本质上讲,服务器只有 1 个处理程序需要处理(又名 Server.setHandler(Handler)
)。
有许多内置处理程序提供了组织处理程序的机制。作为这种类型的一个例子(冰山一角),您可以通过使用 HandlerList
拥有超过 1 个处理程序。 ,将处理程序包装在 HandleWrapper
中要具有基于请求详细信息的可选行为,请指定上下文,然后使用 ContextHandler
ContextHandlerCollection
里面等等(有太多的组合无法在 StackOverflow 上的答案中列出)
WebSocketServlet
是组织 Web 应用程序的更高级别方法,完全在 Servlet 规范和标准内配置。完成注释、过滤器、监听器、行为等的所有标准。
人们通常会选择一种技术或另一种技术。两者都同样有能力,同样表现出色。两者都不是更好的选择。
通常明智的做法是选择一种技术而不是另一种技术,并在整个网络应用程序中坚持使用该技术,因为混合这两种行为是很棘手的,并且充满了意外行为的地雷。
注意:从架构上来说,Servlet 层本身就是一个 Jetty Handler,可以通过 ServletContextHandler
或WebAppContext
(这只是一个专门的 ServletContextHandler)。
关于java - WebSocketHandler 和 WebSocketServlet 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28792991/
我正在使用 Jetty 9 设置 WebSocket 处理程序。我见过使用 WebSocketHandler 或 WebSocketServlet 的示例。 这就是我正在做的事情: public cl
我正在尝试在我正在处理的嵌入式 Jetty 应用程序中测试 WebSocket 支持。我的目标是将数据从服务器流式传输到浏览器。我还没有解决所有问题,因为我刚刚开始设置 WebSocket servl
我正在尝试采用使用(现已弃用)WebSocketServlet 的旧代码。旧代码如下所示: @Singleton ExampleServlet extends WebSocketServlet {
我有一个需要使用 Tomcat 7 网络套接字的 webapp。 在这个 web 应用程序中,所有标准 Servlet(那些扩展 javax.servlet.http.HttpServlet)都可以很
本文整理了Java中org.eclipse.jetty.websocket.WebSocketServlet.init()方法的一些代码示例,展示了WebSocketServlet.init()的具体
本文整理了Java中org.eclipse.jetty.websocket.WebSocketServlet.getInitParameter()方法的一些代码示例,展示了WebSocketServl
我见过很多关于如何为 HTTPS 配置 Jetty 的示例 SSL for Jetty但它们似乎都利用一个单独的 Server 类,其中包含一个 main 方法来执行。我想将我的 WebServlet
我正在尝试访问 HttpServlet 中设置的 session 属性来自 WebSocketServlet 我有两个 ServletContextHandler对象,都带有 SESSIONS启用:
我是一名优秀的程序员,十分优秀!