问题标签 [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.
ruby - Ruby 无法覆盖发送方法
这有点难以解释,但我似乎偶尔无法覆盖我的应用程序中的“发送”方法。我正在基于 EventMachine 创建一个相当大的应用程序,有时,在我的代码深处,我决定在我的一个类中定义一个“发送”方法。当我稍后尝试使用此方法时,通常会得到一个类似于 的异常TypeError: <parameter> is not a symbol
,例如以下内容(可能是由所需的 AMQP gem(不是我的)引起的,但这个问题更笼统):
这是违规行:
在这种特殊情况下,@connection
对象的类定义了一个send
方法,该方法接受AMQ::Protocol::MethodFrame
. 然而,似乎以某种方式Object#send
调用了默认方法(它需要一个符号,因此是异常)。
在开发的早期,我在我的一个自定义类上遇到了同样的问题,通过将我的“发送”方法的名称更改为“发送消息”来解决这个问题。
所以,由于这有点笼统,问题是,什么样的事情会干扰我send
在定义它的对象上调用自定义方法的能力?
仅供参考:我在 OSX 上使用 Ruby 1.9.2p180。
mongodb - MongoMapper、MongoDB 和 EventMachine
我正在使用 DaemonKit 创建一个 AMQP 侦听器。每当有消息通过网络时,我都想将其记录到 MongoDB。我已经移动了我的 Rails MongoDB 配置,并且连接工作正常。当我尝试创建新模型时,Model.create 方法中出现错误。
创建对象的代码:
我读过我可以分叉 mongomapper 以使 http 调用异步,但这些错误似乎来自 mongodb ruby 驱动程序。任何帮助是极大的赞赏。
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 中的整体连接池不是完全支持的配置。(不过从那时起可能会有一些进展)
ruby - 单个 EventMachine 反应器中的多个服务器
是否可以在单个事件机器中运行多个服务器?
我的意思是单个客户端连接可以同时使用多个服务。例如,登录服务器对用户进行身份验证,然后用户可以同时使用聊天室和简单的游戏,例如带有单个客户端套接字的跳棋?
还是每个服务都需要多个 eventmachine 反应器?
ruby - 我是否以正确的方式使用 eventmachine?
我正在使用 ruby-smpp 和 redis 来实现基于队列的后台工作程序来发送 SMPP 消息。
我想知道我是否以正确的方式使用 eventmachine。它有效,但感觉不对。
ruby - 如何在 Mac OSX Snow Leopard 上安装 EventMachine
我搜索了这个问题并不断寻找与 PC 相关的资源。
每次我尝试安装 EventMachine 时都会收到此错误:
在构建 C 扩展时,它似乎中断了。我尝试了各种解决方案,例如“ Mac OS X Leopard 安装 ruby gem eventmachine ”,但没有运气。
ruby - 将 Postgres 与 Eventmachine 一起使用
有谁知道在 eventmachine 中连接到 postgres 的好方法。
我知道有一个与 eventmachine 捆绑在一起的实现,但我不喜欢使用套接字。
我只想要一个可以向其发送查询的正常连接。
ruby - 异步 Sinatra 因路径中的参数而失败
我有一个 async_sinatra 应用程序,它以下列方式使用 eventmachine:
当我请求 url时,/test?foo=bar
它会产生test: bar
,但是当我将路径声明为aget '/test/:foo' do
并尝试使用请求时,params[:foo]
该请求永远不会返回。
为什么我不能在 async_sinatra 中使用 in-url 参数?
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
websocket - 如何使用 EventMachine 设置 PubSub 聊天系统?
我正在努力学习EventMachine
(并成为一个更好的异步程序员)。我以为我会选择经典chat app
。
我设法设置了一个 WebSocket(使用em-websocke
t)服务器和一个 WebSocket 客户端。一切都很好,直到我意识到most browsers don't support WebSocket!
特别是 IE。我对到处使用 Chrome 的诅咒。哈哈
那么,如何使用 EventMachine 作为我的服务器(接收传入消息)并能够将消息发送回订阅的客户端?
另外,我希望它可以在任何浏览器中工作。
感谢您的任何建议。