Cider nREPL с использованием ошибки виртуального бокса: соединение разорвано удаленным узлом

Запуск реплики с использованием:

lein repl :headless :port 4242

Когда я пытаюсь подключиться через cider connect, я получаю следующую ошибку:

Connection closed unexpectedly (connection broken by remote peer)

Когда я пытаюсь подключиться через VIA:

lein repl :connect 4242

Я получаю следующую ошибку:

SocketException The transport's socket appears to have lost its connection to the nREPL server
        clojure.tools.nrepl.transport/bencode/fn--5154/fn--5155 (transport.clj:95)
        clojure.tools.nrepl.transport/bencode/fn--5154 (transport.clj:95)
        clojure.tools.nrepl.transport/fn-transport/fn--5126 (transport.clj:42)
        clojure.core/binding-conveyor-fn/fn--4676 (core.clj:1938)
        java.util.concurrent.FutureTask.run (FutureTask.java:266)
        java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)
        java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624)
        java.lang.Thread.run (Thread.java:748)
Bye for now!

person kkruit    schedule 09.05.2018    source источник


Ответы (1)


По умолчанию nrepl прослушивает соединения только с того же компьютера. Он делает это, «привязывая» своего слушателя к IP-адресу петлевой сети 127.0.0.1. Если вы хотите, чтобы он прослушивал соединения из любого места, вы можете либо привязать его к 0.0.0.0, который является сетевым адресом any, либо к адресу определенного адаптера.

Похоже, мне нужно было указать хост как 0.0.0.0, например.

lein repl :headless :host 0.0.0.0 :port 4242
person kkruit    schedule 09.05.2018
comment
Хорошо знать почему. Спасибо Артур! - person kkruit; 10.05.2018