如何编写一个 Java WebSocket Servlet 来支持 Tomcat 或 WebLogic 的实现
How do I write a Java WebSocket Servlet that can support implementations for either Tomcat or WebLogic
我正在为一个基于 Java 的大型 Web 应用程序设计一个新的聊天模块,该应用程序默认使用 Tomcat,但我们的一个客户支持 WebLogic。我一直在研究为此目的使用 WebSocket,但我发现 WebSocket servlet 似乎没有通用接口,例如 javax.servlet.http.HttpServlet
.
因此,考虑到我可能需要为我希望使用的每个 servlet 容器定义不同的 servlet 实现,我该如何处理我 100% 都不知道我使用哪个容器的情况在吗?
您遵守规范。 Java EE 7 has websockets, which were defined in JSR-356. Tomcat implements the Java WebSocket 1.1 API defined by JSR-356, and so does WebLogic.
关键接口是ServerEndpoint:
import javax.websocket.server.ServerEndpoint;
import javax.inject.Inject;
@ApplicationScoped
@ServerEndpoint("/actions")
public class DeviceWebSocketServer {
@Inject
private DeviceSessionHandler sessionHandler;
@OnOpen
public void open(Session session) {
}
...
}
Here's a tutorial by Oracle 如何去做(从我引用上面例子的地方)。
Tomcat 示例应用程序(代码链接:backend, frontend)中还有简单而酷的 websocket 示例,如果您安装 Tomcat.
,则默认安装
我正在为一个基于 Java 的大型 Web 应用程序设计一个新的聊天模块,该应用程序默认使用 Tomcat,但我们的一个客户支持 WebLogic。我一直在研究为此目的使用 WebSocket,但我发现 WebSocket servlet 似乎没有通用接口,例如 javax.servlet.http.HttpServlet
.
因此,考虑到我可能需要为我希望使用的每个 servlet 容器定义不同的 servlet 实现,我该如何处理我 100% 都不知道我使用哪个容器的情况在吗?
您遵守规范。 Java EE 7 has websockets, which were defined in JSR-356. Tomcat implements the Java WebSocket 1.1 API defined by JSR-356, and so does WebLogic.
关键接口是ServerEndpoint:
import javax.websocket.server.ServerEndpoint;
import javax.inject.Inject;
@ApplicationScoped
@ServerEndpoint("/actions")
public class DeviceWebSocketServer {
@Inject
private DeviceSessionHandler sessionHandler;
@OnOpen
public void open(Session session) {
}
...
}
Here's a tutorial by Oracle 如何去做(从我引用上面例子的地方)。
Tomcat 示例应用程序(代码链接:backend, frontend)中还有简单而酷的 websocket 示例,如果您安装 Tomcat.
,则默认安装