내가 leiningen을 통해 swank를 시작하면 다음 슬라임 연결을 허용하고 나가야합니다. 나는 몇 개의 이맥스 인스턴스가 같은 swank 인스턴스에 연결되도록하고 싶다. 내가 할 수 있을까? 나는 라이오닌을 통해 이것을 할 수 있습니까?두 개의 이맥/슬라임을 같은 swank 인스턴스에 연결할 수 있습니까?
답변
글쎄, 당신은 일반적으로 첫 번째 점액을 시작할 수 있습니다, 다음 (require 'swank.swank)
일부 포트 번호 port
와 (swank.swank/start-repl port)
을 대체 할 (또는 어쩌면 그것은 ... 기본적으로 확실하지 필요한 것) 그리고 당신은 그에게 점액의 두 번째 인스턴스를 연결할 수 있습니다 새로 생성 된 REPL.
나는 REPL에 연결 한 이맥스로, 지금 그것을 한 적이 처음 이맥스에서 lein swank
, (swank.swank/start-repl 4006)
시작, MX는 두 번째 이맥스 (포트 번호로 4006을 제공하는)에 점액-연결, 그럼 내가 할 수있는 이 :
; first Emacs
(def x 5)
; second Emacs
x ; evaluates to 5
(def y 1234)
; first Emacs
y ; evaluates to 1234
쿨! :-)
업데이트 : 오, BTW - (swank.swank/start-repl)
백그라운드에서 새 REPL을 시작하고 은이 실행하기 위해 사용하는 REPL을 차단하지 않습니다. 반환 값은 nil
, 그래서 ... 새로운 REPL을 죽일 방법을 잘 모르겠어요
(업데이트 2 :. 나는 더 이상에 대한 확신 제거 된 것을)
업데이트 3 : 위의 동안 방법은 명령
lein swank 4005 "localhost" :dont-close true
포트 및 호스트 이름 인수로 허풍을 시작하는 것이 더 편리 할 수도 관계없이 원래 허풍 인스턴스가 시작되었습니다 방법의 추가 클라이언트를 연결하는 것을 가능하게하는 것을 완벽하게 일반적이다 :dont-close true
을 전달해야하는 경우 명시 적으로 언급해야합니다. 4005
및 "localhost"
이 기본값입니다.
이렇게하면 나중에 Swank에서 연결을 끊고 나중에 다시 연결할 수 있으며 여러 클라이언트를 동시에 연결할 수 있습니다.
는 (난 그냥 Leiningen-시작 허풍에 재 연결을 사용하도록 설정하는 방법에 this new question에 대답하면서이 가능하다는 것을 알아 차렸다 갑자기 인정하는:dont-close
도 동시 연결을 원인이 있는지 확인하기 위해 나에게 발생 - 그것은 않습니다.)
정말 대단합니다. 정확히 내가 무엇을 찾고 있었는지! –
'굉장한'은 정확하게 올바른 단어입니다. :-) BTW,'swank.swank/start-repl'을 사용하여 Swank를 Clojure 앱에 임베드 할 수 있습니다. 아주 좋은 효과를 위해 그것을 사용하는 사람들에 대해 읽었습니다. 주주의 사항은 Swank가 보안에 관심이 없다는 것입니다. 따라서 REPL의 포트에 대한 액세스를 제한하는 데주의를 기울여야합니다. –
위의 업데이트 3에 설명 된 기능은 상당히 최근의 린 스웽크를 필요로합니다. 자세한 내용은 제가 링크 된 다른 질문 (특히 내 답변에 대한 의견)을 참조하십시오. –