将 java 与 websocket 相关联
Associate java with websocket
我有几个名为 A、B 和 C 的进程或节点,它们通过套接字在它们之间通信。我想在他们通过 websocket 说话时打印他们的状态。
为此,我创建了一个名为 WebSocket
的 class,其中包含必要的 @ApplicationScoped
、@ServerEndpoint("/status")
、@OnOpen
、@OnMessage
、 @OnClose
和 @OnError
标签。每个标签都有其对应的功能。我还创建了一个 TomCat 服务器。
问题是我无法让我的进程通过 WebSocket
class.
与 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
.
的参数执行不同的节点
这不是一个选项。它可能有效,但在我的情况下,所有节点都必须是单独的程序,这样做意味着它们都是同一个程序,但只是在不同的线程下。
我发现了问题。客户端需要它自己的 class 来与不存在的服务器通信。 WebSocket
class 被 Tomcat 服务器使用,客户端不应该使用它,需要一个新的。
关注 this tutorial 一个很好的例子。
就我而言,它让我明白了我的设计错误。我在 ContainerProvider
上收到 Could not find an implementation class
异常,但那是另一回事了。
我有几个名为 A、B 和 C 的进程或节点,它们通过套接字在它们之间通信。我想在他们通过 websocket 说话时打印他们的状态。
为此,我创建了一个名为 WebSocket
的 class,其中包含必要的 @ApplicationScoped
、@ServerEndpoint("/status")
、@OnOpen
、@OnMessage
、 @OnClose
和 @OnError
标签。每个标签都有其对应的功能。我还创建了一个 TomCat 服务器。
问题是我无法让我的进程通过 WebSocket
class.
执行我的 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
.
这不是一个选项。它可能有效,但在我的情况下,所有节点都必须是单独的程序,这样做意味着它们都是同一个程序,但只是在不同的线程下。
我发现了问题。客户端需要它自己的 class 来与不存在的服务器通信。 WebSocket
class 被 Tomcat 服务器使用,客户端不应该使用它,需要一个新的。
关注 this tutorial 一个很好的例子。
就我而言,它让我明白了我的设计错误。我在 ContainerProvider
上收到 Could not find an implementation class
异常,但那是另一回事了。