我尝试使用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连接,或者如果断开连接则自动重新连接?我在野外看到了一些代码中的代码,但我不认为我能够很好地理解代码以适应它。
答案 0 :(得分:0)
我认为您必须发送ping消息,因为:
sente
来支持Aleph)。因此你必须做一些" ping"经常。
关于代码,on-closed
想要一个函数作为第二个参数,所以:
(s/on-closed! conn #(prn "closed"))