:これに新しいものは、私はすべてのさまざまなオプションが利用可能に試してしばらく過ごし、それはかなり困難でした単純なClojure WebSocketクライアントを簡単に設定できるライブラリを見つけることができます。 (公平には、WebSocketクライアントが非ブラウザ/ JavaScriptのコンテキストで動作するのはあまり一般的ではないようで、Clojure スクリプト WebSocketクライアントに重点を置いているようです)
それはよく文書化されていませんが、http.async.clientは私にとっては抵抗が最も少ない経路になってしまいました。私は正常のWebSocketサーバからストリーミングデータを読み込み、これを行うことで、コンソールにそれを印刷することができました:
(ns example.core
(:require [http.async.client :as client]))
(def url "ws://localhost:1337")
(defn on-open [ws]
(println "Connected to WebSocket."))
(defn on-close [ws code reason]
(println "Connection to WebSocket closed.\n"
(format "(Code %s, reason: %s)" code reason)))
(defn on-error [ws e]
(println "ERROR:" e))
(defn handle-message [ws msg]
(prn "got message:" msg))
(defn -main []
(println "Connecting...")
(let [client (client/create-client)
ws (client/websocket client
url
:open on-open
:close on-close
:error on-error
:text handle-message
:byte handle-message)]
(loop [] (recur))))
終わりに無限ループがちょうど終了からプロセスを維持することです。 Ctrl-Cを押すまで、ソケットから受信したメッセージはSTDOUTに出力されます。
Clojure WebSocketクライアントを使用して簡単に作業したいですか?Webベースではないクライアントは、実際にはWebソケットのユースケースではなく、Clojureクライアントがないことが説明されています。しかし、Google for Java websocketクライアントの場合は、いくつかのように見えますが、ClojureでJavaクライアントを設定するためにinteropを使用できます。 。 – georgek
通常のユースケースではありません。私はJavaのものを見て、私はそれがClojureで既存のライブラリで可能かどうかを知りたいだけです。 httpクライアントが存在するので、それは恥ずかしくないようです。 – user2263578