0

我有一个工作的 JAX-RS webapp,它实现了一些 RESTfull 服务。我是在 WSO2 Studio 下开发的,用 WSO2 AS Web 界面部署,一切都很简单。

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

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

谢谢你。

更新

我编写了这个极其简单的 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 无法访问。我不明白我做错了什么。

4

2 回答 2

1

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

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

于 2015-08-06T09:11:03.257 回答
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/的 tomcat websocket 示例webapp/src/main/java/websocket

于 2015-08-06T12:08:42.533 回答