我在线程中启动ritz服务器并使用nrepl客户端以编程方式与其进行通信:
(require '[clojure.tools.nrepl :as repl])
(def connection (repl/connect :port 15351)) ;; port of ritz-nrepl
(-> (repl/client connection 1000)
(repl/message {:op "eval" :code '(+ 3 3)}))
(其中一些基于http://hugoduncan.github.io/ritz-conj/#/5/2)
这很好用,我收到ritz-nrepl服务器的回复。但如果我想用框架做一些事情:
(repl/message connection {:op "break-on-exception"})
(repl/message connection {:op "eval" :code '(/ 1 0)}) ;; empty response {} here
(repl/message connection {:op "frame-source" :frame-number 1})
这会引发异常,因为“frame-source”op需要:thread-id。但我怎么知道线程ID?我已经检查了break-context,我看到地图中有一些键表示应该由我传入的:thread-id查找的线程id,但我怎么知道:thread-id预先?
感谢任何指导!