无法使用 Apache Camel 中的 AHC-WS 组件连接到 websocket 服务器

Cannot connect to websocket server using AHC-WS component in Apache Camel

我在 Apache Camel 中使用 ACH-WS 组件连接到使用 WSS 的 websocket 服务器(更准确地说是 Slack 的 websocket 服务器)。我有这样一条路线:

from("ahc-wss://host")
  .log(...)
  .to(...)

当我初始化我的应用程序时,我看到以下日志:

Route: wss-inbound-event started and consuming from: Endpoint[ahc-wss://ms109.slack-msgs.com/websocket/....]

然而,听起来好像从未连接到服务器。如果我复制 URL 字符串并使用它连接的另一个 websocket 客户端并立即收到一些欢迎消息。这是 AHC-WS 组件从未连接的证明,因为根据 Slack 的文档,URL 只能使用一次。

我想知道是否需要为组件提供额外的选项才能工作。

查看组件的代码,它似乎希望您在连接建立时先发送消息。如果您只是创建消费者,它不会连接到 URL.

为了解决我的问题,我所做的是在应用程序启动时向 Slack API 添加一条 ping 消息。这使得端点连接到服务器并开始接收事件。