如何在我的Java Web应用程序中运行websocket客户端



我需要运行一个Java websocket客户端,侦听来自另一个第三方websocket服务器的一些更新。

客户端需要作为Java webapp的一部分部署。

要求客户端必须连续侦听更新。

正确的方法是什么?

我正在考虑从servlet调用上述java代码。推荐吗?

编辑:我有websocket的代码(我使用Tyrus),但我对将其链接到我的webapp的正确方法感到困惑。例如,如何确保websocket持续运行。

我会把它设为一个单独的类。如果您希望在应用程序运行时连接并持续侦听,则可能需要在应用程序启动时启动的单独线程中运行它。

线程和并发性是一个相当深的兔子洞的开始,但是像ThreadPoolExecutor这样的单线程可能会工作。

从那里,如果你正在运行Jetty嵌入式stick Executor逻辑在你的主方法;如果你以.war的形式运行它,你必须将它配置为在web应用程序启动时运行。

您可以使用org.eclipse.jetty.websocket:websocket-client

WebSocketClient client = new WebSocketClient();
SimpleEchoSocket socket = new SimpleEchoSocket();
try {
     client.start();
     URI echoUri = new URI(destUri);
     ClientUpgradeRequest request = new ClientUpgradeRequest();
     client.connect(socket, echoUri, request);
     System.out.printf("Connecting to : %s%n", echoUri);
     socket.awaitClose(5, TimeUnit.SECONDS);
 } catch (Throwable t) {
      t.printStackTrace();
 } finally {
    try {
         client.stop();
     } catch (Exception e) {
          e.printStackTrace();
     }
 }

  • 阅读更多

相关内容

  • 没有找到相关文章