6
切断したときに検出:のClojure(アレフ)サーバーは、私は次のコードを持っている
(ns alephtest.core
(:use lamina.core aleph.tcp aleph.formats))
(defn connection-established [socket]
(println "Socket connection established")
(on-closed socket #(println "closed"))
(doseq [line (line-seq (java.io.BufferedReader. *in*))]
(enqueue socket line)))
(defn -main []
(on-realized (tcp-client {:host "localhost" :port 9000})
connection-established
#(println "error:" %)))
すべてそれが今しているローカルサーバーに接続し、サーバに至るまで標準入力からデータを渡すんが。これは、(on-closed socket #(println "closed"))
部分を除いて正常に動作します。クライアントがまだ動いている間に私がサーバーを殺すと、コンソールに「閉じた」というメッセージが表示されるはずですが、決して実行しません。
私の最終目標は、何らかの種類のリカバリコードを作成することです。サーバがダウンすると、サーバが復帰するのを待っている間にクライアントがメッセージを待ち行列に入れ、キューに入れられたすべてのものを再接続して送信します。
そうでした、ありがとうございました! (また、私は今まで愛するアレフを驚かせています、それにも感謝しています:P) –