如何编写可支持Tomcat或WebLogic实现的Java WebSocket Servlet

时间:2018-02-16 14:21:49

标签: java tomcat websocket weblogic

我正在为基于Java的大型Web应用程序设计一个新的聊天模块,默认情况下使用Tomcat,但我们的客户端支持WebLogic。我一直在考虑使用WebSocket,但我发现WebSocket servlet似乎没有通用接口,例如javax.servlet.http.HttpServlet

因此,考虑到我可能需要为我希望使用的每个servlet容器定义不同的servlet实现,我该如何处理我不知道100%的容器我是哪个容器的情况在?

1 个答案:

答案 0 :(得分:2)

您遵循规范。 Java EE 7 has websockets, which were defined in JSR-356Tomcat implements the Java WebSocket 1.1 API defined by JSR-356so 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示例应用程序(代码链接:backendfrontend)中还有简单而酷炫的websocket示例,如果您安装Tomcat,则默认安装这些示例。