【发布时间】:2021-01-14 12:32:12
【问题描述】:
我有几个名为 A、B 和 C 的进程或节点,它们通过套接字在它们之间进行通信。我想在他们通过 websocket 说话时打印他们的状态。
为此,我创建了一个名为WebSocket 的类,并带有必要的@ApplicationScoped、@ServerEndpoint("/status")、@OnOpen、@OnMessage、@OnClose 和@OnError 标签。每个标签都有其对应的功能。我还创建了一个 TomCat 服务器。
问题是我无法通过 WebSocket 类让我的进程与 TomCat 服务器通信,反之亦然。
执行我的 tomcat 服务器,运行 WebSocket 的实例,其中 Node 的值为 null,因此获取节点的状态并打印它是不可行的。
反过来,在执行我的节点时,每个节点都会创建一个WebSocket,但它无法与 Tomcat 通信。
最终结果是我的三个节点运行着三个无法与 tomcat 通信的 WebSocket 实例,而 tomcat 运行着它自己的无法获取节点状态的 WebSocket 实例。
有人可以澄清一下吗:
- 通信应该采用哪种方式? websockets 是设计用来获取信息还是等到信息发送给他。
- 如何解决我的问题,最好先创建节点(每个节点都有自己的
WebSocket)和等待发送信息的 tomcat 服务器。 - 为了显示屏幕,我制作了一个小的 .html 文件 (http://localhost:63343/test/web/index.html),但 tomcat 有一个在运行时打开的文件 (http://localhost:8080/test_war_exploded /)。如果我设法将消息从节点正确发送到 tomcat 服务器,这两个网站中的哪一个会收到消息? AKA 哪个有效?
编辑:
我刚刚测试了执行 Tomcat 服务器和几个套接字。每个套接字执行一个新的WebSocket,然后我可以根据WebSocket 的参数执行不同的节点。
这不是一个选项。它可能有效,但在我的情况下,所有节点都必须是单独的程序,这样做意味着它们都是同一个程序,但只是在不同的线程下。
【问题讨论】:
标签: java tomcat websocket tomcat9 java-websocket