Ho il codice seguente:Clojure (aleph) rilevare quando il server disconnette
(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:" %)))
Tutto ciò fa adesso connects è un server locale e quindi passa i dati da stdin attraverso il server. Funziona bene, ad eccezione della porzione (on-closed socket #(println "closed"))
. Se uccido il server mentre il client sta ancora andando, dovrei ricevere un messaggio che dice "chiuso" alla console, ma non lo faccio mai.
Il mio obiettivo finale qui è quello di creare una sorta di codice di ripristino, in modo che se il server va giù il client accoderà i messaggi mentre attende che il server torni e quando il server ritorna ' Ricollegamento e invio di tutto ciò che è stato accodato.
Sì, grazie mille! (Inoltre, fino ad ora sono pazzo di amare aleph, grazie anche per questo: P) –