如何在WSO2 AS 5.2.1上设置和部署WebSocket?

时间:2015-08-06 08:57:26

标签: java web-applications wso2 java-websocket wso2as

我有一个可以实现一些RESTfull服务的JAX-RS webapp。我在WSO2 Studio下开发了它并使用WSO2 AS Web界面进行了部署,非常简单。

现在我想在我的WebApp上添加打开WebSocket的可能性。我没有在WSO2 AS文档中找到标准程序或示例。我的问题是:

  1. 有可能吗?
  2. 我可以在同一个war包中使用RESTfull实现和WebSocket吗?这样做有一个例子吗?最好的WSO2 AS。
  3. 如何设置WebSocket应用程序并将其部署在WSO2 AS上?
  4. 谢谢。

    更新

    我已经编写了这个极端简单的websocket应用程序:

    import java.io.IOException;
    import javax.websocket.OnMessage;
    import javax.websocket.Session;
    import javax.websocket.server.ServerEndpoint;
    
    @ServerEndpoint("/test")
    public class TestSocket {
    
        @OnMessage
        public void onMessage(Session session, String message, boolean last) {
            try{
                if(session.isOpen()){
                    session.getBasicRemote().sendText("Received -> [" + message + "]", last);
                }
            }catch(IOException e){
                try{
                    session.close();
                }catch(IOException e1){
    
                }
            }
        }
    }
    

    如果我部署在Tomcat服务器上,如果我部署在WSO2 AS 5.3.0(快照)上,则无法访问websocket。我不明白我做错了什么。

2 个答案:

答案 0 :(得分:1)

WSO2 AS 5.2.1具有Websocket(特定于tomcat)支持。您可以在$AS_HOME/repository/deployment/server/webapps文件夹中找到“示例”webapp。

但是WSO2 AS 5.2.1中没有标准(JSR356)Websocket支持。它将在WSO2 AS 5.3.0中提供,该版本将很快发布。 WSO2 AS 5.3.0 Alpha已经发布,您可以使用alpha pack试用Web套接字支持。启动服务器,将浏览器指向http://localhost:9763/example/websocket/index.xhtml,您将在那里找到四个Web套接字示例。您可以查看release mail以了解WSO2 AS 5.3.0中的新功能。

答案 1 :(得分:0)

正如@Rajkumar所提到的,如果你需要使用基于JSR356的标准websocket,你必须使用WSO2-AS 5.3.0 Alpha。但是你仍然可以使用以前的wso2-as版本(5.2.1)来实现tomcat特定的websocket实现。

如果要使用jaxrs调用websocket,可以参考github-product-as

中的websocket测试用例

对于基于tomcat的websocket实现,你可以从tomcat源或https://github.com/wso2/product-as/tree/wso2appserver-parent-6.0.0/modules/samples/common/webapp/src/main/java/websocket

引用tomcat websocket样本