我正在尝试与Slack的RTM与Aleph进行接口。
目前我有这样的代码:
(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连接保持活跃,或者如果断开连接,则自动重新连接?我在野外看到过一些代码在做pings,但我认为我对代码的理解不够好,无法适应它。
发布于 2016-01-19 08:19:10
我认为您必须发送ping消息,因为:
sente支持Aleph)。因此,你必须定期做一些“打招呼”。对于代码,on-closed需要一个函数作为第二个参数,所以:(s/on-closed! conn #(prn "closed"))
https://stackoverflow.com/questions/34870519
复制相似问题