我正在尝试使用 Aleph 与 Slack 的 RTM API 交互。
目前我有这个代码:
(defn connect-socket []
(let [conn @(http/websocket-client (get-websocket-url))]
(s/consume #(prn %) conn)
(send-message conn {:type "ping"}) ;; just to check if send-message works
(s/on-closed conn (prn "closed"))))
它在前几次运行良好,然后conn
在一些不活动后停止接收来自 Slack 的消息。它也没有打印“关闭”,这似乎表示流没有关闭。我不太确定这里发生了什么。
如何使 websocket 连接保持活动状态,或者在断开连接时自动重新连接?我在野外看到了一些代码在执行 ping 操作,但我认为我对代码的理解不足以适应它。