问题标签 [eventmachine]

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 回答
1575 浏览

ruby - Ruby 无法覆盖发送方法

这有点难以解释,但我似乎偶尔无法覆盖我的应用程序中的“发送”方法。我正在基于 EventMachine 创建一个相当大的应用程序,有时,在我的代码深处,我决定在我的一个类中定义一个“发送”方法。当我稍后尝试使用此方法时,通常会得到一个类似于 的异常TypeError: <parameter> is not a symbol,例如以下内容(可能是由所需的 AMQP gem(不是我的)引起的,但这个问题更笼统):

这是违规行:

在这种特殊情况下,@connection对象的类定义了一个send方法,该方法接受AMQ::Protocol::MethodFrame. 然而,似乎以某种方式Object#send调用了默认方法(它需要一个符号,因此是异常)。

在开发的早期,我在我的一个自定义类上遇到了同样的问题,通过将我的“发送”方法的名称更改为“发送消息”来解决这个问题。

所以,由于这有点笼统,问题是,什么样的事情会干扰我send在定义它的对象上调用自定义方法的能力?

仅供参考:我在 OSX 上使用 Ruby 1.9.2p180。

0 投票
1 回答
876 浏览

mongodb - MongoMapper、MongoDB 和 EventMachine

我正在使用 DaemonKit 创建一个 AMQP 侦听器。每当有消息通过网络时,我都想将其记录到 MongoDB。我已经移动了我的 Rails MongoDB 配置,并且连接工作正常。当我尝试创建新模型时,Model.create 方法中出现错误。

创建对象的代码:

我读过我可以分叉 mongomapper 以使 http 调用异步,但这些错误似乎来自 mongodb ruby​​ 驱动程序。任何帮助是极大的赞赏。

0 投票
1 回答
2160 浏览

ruby - 如何使用 em_mysql2 解决“连接仍在等待结果”错误

我在 Goliath (eventmachine) 下使用带有 em_mysql2 的 activerecord。我的用户模型发生了最奇怪的事情。当我第一次对 /users 进行 POST 时,一切都按预期工作。当我进行第二次 POST 时,出现错误。

我的任何其他模型或路线都不会发生这种情况。我假设如果数据库连接处于混乱状态,我会在其他请求上看到相同的错误,但不会 - 所有其他数据库更新和 GET 请求似乎都工作得很好。

有谁知道这只能发生在我的 Users 模型中并且仅发生在 User.save 操作中?活动记录是否以某种方式存储它用于执行 Model.save 并重新使用它的数据库连接?

编辑:

当我写这个问题时,我不知何故没有提到我使用 ActiveRecord 作为 ORM。我也没有提到我正在异步向 Mongo 数据库发送请求以获取用户身份验证信息。

我的解决方案:

事实证明,这个错误唯一发生的时候是 Mongo 的响应在 MySQL 的响应之前返回,这导致 MySQL 响应被不同的 Fiber 接收,而不是发出请求的 Fiber。由于我使用的 MySQL2 光纤实现使用光纤的 objectID 来管理连接,这似乎导致了问题。

ActiveRecord + MySql2 + Fibers + Goliath 中的整体连接池不是完全支持的配置。(不过从那时起可能会有一些进展)

0 投票
1 回答
2629 浏览

ruby - 单个 EventMachine 反应器中的多个服务器

是否可以在单个事件机器中运行多个服务器?

我的意思是单个客户端连接可以同时使用多个服务。例如,登录服务器对用户进行身份验证,然后用户可以同时使用聊天室和简单的游戏,例如带有单个客户端套接字的跳棋?

还是每个服务都需要多个 eventmachine 反应器?

0 投票
2 回答
3457 浏览

ruby - 我是否以正确的方式使用 eventmachine?

我正在使用 ruby​​-smpp 和 redis 来实现基于队列的后台工作程序来发送 SMPP 消息。

我想知道我是否以正确的方式使用 eventmachine。它有效,但感觉不对。

0 投票
4 回答
3572 浏览

ruby - 如何在 Mac OSX Snow Leopard 上安装 EventMachine

我搜索了这个问题并不断寻找与 PC 相关的资源。

每次我尝试安装 EventMachine 时都会收到此错误:

在构建 C 扩展时,它似乎中断了。我尝试了各种解决方案,例如“ Mac OS X Leopard 安装 ruby​​ gem eventmachine ”,但没有运气。

0 投票
1 回答
521 浏览

ruby - 将 Postgres 与 Eventmachine 一起使用

有谁知道在 eventmachine 中连接到 postgres 的好方法。

我知道有一个与 eventmachine 捆绑在一起的实现,但我不喜欢使用套接字。

我只想要一个可以向其发送查询的正常连接。

0 投票
1 回答
281 浏览

ruby - 异步 Sinatra 因路径中的参数而失败

我有一个 async_sinatra 应用程序,它以下列方式使用 eventmachine:

当我请求 url时,/test?foo=bar它会产生test: bar,但是当我将路径声明为aget '/test/:foo' do并尝试使用请求时,params[:foo]该请求永远不会返回。

为什么我不能在 async_sinatra 中使用 in-url 参数?

0 投票
2 回答
1399 浏览

ruby-on-rails - Thin/eventmachine非root安装问题

尝试在 nginx+thin 下运行 ruby​​ on rails 框架,目前在 WEBrick 下工作。

我没有 root 访问权限,因为它托管在网络托管服务中。

到目前为止,所有与 gems 相关的问题都已解决,无需 root 访问权限。

瘦需要事件机器,所以:

ruby 和已安装 gem 的版本:

我并没有真正想通,问题是在ERROR: Failed to build gem native extension.还是在make install ***Error code 71.

同样的事情发生在尝试$ gem install thin

0 投票
2 回答
656 浏览

websocket - 如何使用 EventMachine 设置 PubSub 聊天系统?

我正在努力学习EventMachine(并成为一个更好的异步程序员)。我以为我会选择经典chat app

我设法设置了一个 WebSocket(使用em-websocket)服务器和一个 WebSocket 客户端。一切都很好,直到我意识到most browsers don't support WebSocket! 特别是 IE。我对到处使用 Chrome 的诅咒。哈哈

那么,如何使用 EventMachine 作为我的服务器(接收传入消息)并能够将消息发送回订阅的客户端?

另外,我希望它可以在任何浏览器中工作。

感谢您的任何建议。