无法使用 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 消息。这使得端点连接到服务器并开始接收事件。
我在 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 消息。这使得端点连接到服务器并开始接收事件。