问题标签 [drb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
273 浏览

ruby - 如何通过代理服务器在 Ruby 中实现远程处理?

我们正在考虑将 Ruby 用于客户端-服务器(非基于 Web)项目,其中客户端和服务器都将用 JRuby 编写。客户端 (Windows) 将位于带有代理服务器的公司防火墙后面,而服务器将位于云中。我们知道DRb使 ruby​​ 到 ruby​​ 的远程处理非常容易,但不清楚 DRb 是否在代理服务器上工作。有没有办法做到这一点?

或者,由于我们使用的是 JRuby,我们考虑过使用Java RMI over HTTP

0 投票
1 回答
568 浏览

ruby - DRb::DRbServerNotFound 传递 Sinatra 参数

我有一个 Sinatra 应用程序和 DRb 服务器对象配对。当我尝试将 Sinatraparams散列传递给我的服务器对象上的一个方法时,我得到DRb::DRbConnError … DRb::DRbServerNotFound了,但是当我直接传递一个简单的散列时,相同的方法仍然有效。

  1. 为什么我在使用 Sinatra 参数哈希时收到此错误?
  2. 解决此问题的最简单和最正确的解决方法是什么?

这是一个简单的测试用例:

这两个都在自己的进程中运行:

这是在 OS X 上的 Ruby 1.9.2 下运行的,我认为这并不重要。

0 投票
1 回答
243 浏览

ruby - DRb 方法访问

我正在 DRb 中编写一个简单的分布式系统。

我有所有的同行,还有一台服务器来做引导。在该服务器中,我有一些方法,例如“suggest_peer”、“start_service”和“stop_service”。

当对等点连接到服务器时,他可以调用所有三个方法。我希望他只能打电话给第一个。

另外,我有一个初始化服务器的文件,并且有一个小 cmd 行,所以我可以启动服务、调试、日志等等。我希望该 cmd 行能够调用第二种和第三种方法,以及第一种方法。

我怎样才能做到这一点?如何防止对等方停止服务?
如果我将服务方法设为私有,则无法从 cmd 行调用它们。

0 投票
1 回答
224 浏览

ruby - DRb,“谁叫我”方法

在 DRbserver 中,如何查看谁调用了方法?我想记录调用某个方法的任何人的 ip 和端口。就像是

def who
uri = <DRb method here>
puts uri
end

DRb 中是否提供此功能?

谢谢。

0 投票
1 回答
227 浏览

ruby - 带有 DRb 或 EventMachine 的 QtRuby

我想使用 Qt 在 Ruby 中编写一个应用程序,它将通过网络与其他实例进行通信。

如何将 Qt 的事件循环与 DRb 或 EventMachine 集成?

编辑:

我找到了答案,当我有更多时间时,我会发布它

0 投票
2 回答
1552 浏览

ruby-on-rails - 让 spork 与 Ruby 1.9.2/3 + Rails 3.1 + Rspec 一起工作?

那里有很多可靠的教程,过去我没有遇到太多麻烦。但是,经过几个小时的尝试,我一定错过了一些东西。

我已经完成了标准安装说明,并启动了 spork 服务器:

看起来不错。

然后,我跳到一个新选项卡并运行我的规范:

此命令仅在运行一瞬间后不返回任何内容。所以我跳回 spork 服务器查看发生了什么并得到:

由于某种原因,drb无法连接?我疯狂地用谷歌搜索,但那里似乎没有任何帮助。

一些可能的线索

  • 56736每次我尝试运行套件时,端口(在这种情况下)都会发生变化
  • 我在 ruby​​ 1.9.2 和 ruby​​ 1.9.3 上得到相同的结果
  • 我正在使用 mac(雪豹)并且防火墙被禁用
  • 我已经在完全不同的 mac(也是雪豹)上尝试过,结果相同。
  • 我正在使用最新版本的黄瓜、rspec 和 spork。
  • 我还设置了黄瓜叉,它以同样的方式失败了。

如您所见,我一直在努力解决它一段时间。我的项目使用了很多 gem,而没有 spork 会使测试变得非常非常糟糕。请帮忙...

更新

这是我的spec_helper

0 投票
1 回答
535 浏览

ruby-on-rails-3 - RSpec with jruby-NoMethodError: undefined method `read_all' for nil:NilClass when using --drb with spork

在将 --drb 添加到 .rspec 文件后,运行 spork 时出现以下错误。我在 mac 上使用 jruby-1.6.7

以下是我正在使用的 rspec gems 版本:

0 投票
0 回答
162 浏览

ruby - 将 DRb 和 TCPSocket 用于分布式 Ruby 程序的主要区别是什么?

如果我想创建一个多进程的客户端-服务器类型的系统,其中一个 Ruby 程序是客户端,另一个 Ruby 程序是服务器,那么在决定是否使用 DRb 和 TCPSocket 实现这一点时,重要的因素是什么?两者似乎都允许两个进程之间的双向通信。

是否存在一种方法比另一种方法更好的领域?例如,如果您需要多个客户端能够同时访问服务器进程。

0 投票
1 回答
418 浏览

ruby - 仅使用 ruby​​ DRb 创建最简单的聊天系统

我刚刚学习了 DRb,并用它做了一个聊天系统。这是代码:

1号航站楼:

2号航站楼:

我知道这很简单,只有 2 个终端,并且每条消息都显示在所有带有“from”前缀的终端中。但是一个丑陋的事情是我复制了同一个类并为每个终端打开了不同的线程,那是因为我不知道如何将字符串打印到其他机器的控制台。因此,如果代码可以这样写:

然后我们可以只维护 A 类并使用一个线程。对于每条消息,只需调用 A.my_add,它将被打印到所有终端。我感谢您的帮助。谢谢!

0 投票
1 回答
268 浏览

ruby - Ruby DRbObject 和覆盖发送

我今天遇到了一个有趣的情况(简化):

我有一个类型的通信对象Adapter,带有一个#send和一个#receive方法。我的应用程序通过 DRb 与它通信。所以在我的应用程序中,我有一个DRbObject,可以说foo

现在,打电话

调用#sendon DRbObject,而不是Adapter.

最简单的修复当然是重命名发送方法。但是,我想尽可能靠近我的文档/基础 API。

你怎么看?我应该重命名该send方法,还是对此有一个简洁的(本地)hack?