4

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

  1. 使用 Screen 意味着当我想做图形操作时会出现无头异常
  2. 有时我想获得一个远程值的本地副本来玩。
4

2 回答 2

1

据我所知,没有传输协议可以通过网络发送实际的 Clojure 值。您可以做的是启动本地 nREPL 服务器,连接到远程实例并在本地读取/评估响应值。当您只是尝试将基本数据从一侧复制到另一侧时,这应该非常简单。查看nREPL 文档以了解如何以编程方式连接到服务器

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

希望这可以帮助!

于 2013-10-28T00:35:03.453 回答
0

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

ssh -L :localhost: 远程主机

然后,您将能够使 nrepl 连接到 localhost 上的该端口并做您想做的一切。

于 2013-09-16T14:02:22.520 回答