从远程nrepl传输值

时间:2013-06-21 06:19:01

标签: clojure gnu-screen nrepl

我有一个远程nrepl,我通过Screen启动,我使用lein repl:connect连接。我可以将价值转移到本地代表吗?我问的原因是:

  1. 使用屏幕意味着当我想进行图形操作和
  2. 时,我会遇到无头的异常
  3. 有时候我想获得一个远程值的本地副本。

2 个答案:

答案 0 :(得分:1)

据我所知,没有传输协议通过线路发送实际的Clojure值。您可以做的是启动本地nREPL服务器,连接到远程实例并在本地读取/评估响应值。当您只是尝试将基本数据从一侧复制到另一侧时,这应该非常简单。检查the nREPL documentation on how to connect to a server programmatically

直接复制诸如java对象状态之类的东西实际上是不可能的。您可以通过基于从远程获取的输入数据创建新对象来解决此问题,假设您拥有源代码的本地副本。渲染图形也是如此,从远程获取数据状态并在本地使用它来触发渲染。

希望这有帮助!

答案 1 :(得分:0)

我假设你的远程进程有一个你要连接的打开的nrepl端口。如果是这种情况,从本地计算机连接到该nrepl端口的最佳方法可能是ssh隧道。

ssh -L:localhost:remote-host

然后你就可以让nrepl连接到localhost上的那个端口并做你想做的一切。