问题标签 [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 回答
1482 浏览

ruby - 从 EventMachine 处理程序流式传输文件?

我正在创建一个流式事件机器服务器。我担心避免阻塞 IO 或做任何其他事情来破坏事件循环。

根据我的阅读,ruby 的非阻塞 IO 可用于以非阻塞方式流式传输文件,或者我可以调用 next_tick,但我有点不清楚这些方法中哪种更可取。

部分问题是我没有找到对 ruby​​ 中非阻塞 IO 库函数的很好解释。

简短版本:假设一个长期存在的网络 IO 操作,每个文件有几个挂钟分钟的流式传输,传输,在 eventmachine 中执行此操作而不会弄乱事件循环的最佳方法是什么?

我知道上面的代码会阻塞,我想知道该放什么。此外,我不能按原样使用作为 eventmachine 一部分的 FileStreamer 类,因为我需要在读取数据之后但在发送数据之前对其进行操作。

0 投票
2 回答
2313 浏览

ruby - 如何使用 Ruby 和 eventmachine 进行日志记录?

我正在使用 Ruby 和 Eventmachine 库编写一个应用程序。我真的很喜欢非阻塞 I/O 和事件驱动系统的想法,我遇到的问题是日志记录。我正在使用 Ruby 的标准记录器库。这并不是说日志记录需要永远,但它似乎是不应该阻塞的东西,它确实如此。是否有某个库可以将 Ruby 的标准记录器实现扩展为非阻塞,或者我应该为我的记录调用调用 EM::defer?有没有办法让 eventmachine 为我做这件事?

0 投票
3 回答
5328 浏览

ruby-on-rails - 无法在 Rails 控制台中加载 Ruby EventMachine - 没有要加载的文件

我无法在简单的测试程序中要求 EventMachine。我正在运行 Ruby 1.9.2 (x86_64-darwin10.4.0) 和 Rails 3.0.1。EventMachine 已安装(通过gem install eventmachine)并且 gem 知道它:

然而,当我启动 rails 控制台(通过rails console)并且只需要 eventmachine 时,它​​就会爆炸:

我尝试在需要 EventMachine 的类中运行方法时得到相同的结果。EventMachine 构建没有错误。我一遍又一遍地卸载了 EventMachine 和 Ruby 以及所有的 gem,但我无法完成这项工作。谁能指出我正确的方向?

-拉斯

0 投票
3 回答
6607 浏览

ruby-on-rails - 使用 Rack 和 Event Machine 将 WebSockets 与 Rails 集成

我创建了一个异步版本的 Rails 3,我想与 WebSocket 实现集成。

我正在使用 EventMachine、Ruby 1.9、Fibers 和各种 em-flavored 库,正如邪恶的Ilya Grigorik所记录的那样。

我一直将em-websocket视为 WebSocket 连接的处理程序,但不确定将其连接到 Rails 应用程序的最佳方法。

理想情况下,这将以与带有 Express 和 Socket.io 的 node.js 类似的方式工作 -应检测传入连接并将其分派到 WebSocket 处理程序或常规 rails 堆栈,如 HTTP 标头 & 等所示

TL;博士

  • 插入现有 Rails 应用程序的 WebSocket 处理程序
  • 透明地将传入的 WebSocket 请求分派到应用程序中的端点
0 投票
1 回答
966 浏览

ruby - 转发请求 UDPSocket

我有一个基本的 ruby​​ 程序,它在端口(53)上侦听,接收数据然后发送到另一个位置(Google DNS 服务器 - 8.8.8.8)。回复不会回到原来的目的地,或者我没有正确转发它们。

这是代码。注意我正在使用 EventMachine

任何关于调试原因或提示的想法,将不胜感激。

0 投票
1 回答
1135 浏览

ruby - Ruby 24/7 工作 XMPP 机器人

有人可以帮我解决这个问题吗?我想创建一个机器人,它接收一种语言的单词,查看数据库,获取翻译并将其发回。我如何理解这在共享主机上是不可能的,但在自己的服务器或 VDS 上是可能的。那么我是否需要使用 EventMachine 和 xmpp4r 等库来制作我的机器人?如果是,如何一次处理多个请求?

0 投票
1 回答
2199 浏览

ruby - 异步 sinatra,在 eventmachine 中具有纤薄和彩虹。为什么越薄越快?

我刚刚使用 eventmachine 启动了Thin 和 Rainwbows 之间的异步 sinatra 基准测试

有人可以用 eventmachine 和四个 work_processes 解释为什么 Thin 比 Rainbows 快吗?我也用一个 work_processes 进行了尝试,但结果没有改变。瘦还是更快。

提前感谢弗朗切斯科

0 投票
1 回答
841 浏览

ruby - 如何让 eventmachine 服务器只写入数据?

我需要实现一个只写入数据而不接收它的服务器。我发现的所有 eventmachine 服务器示例总是让服务器先接收数据,然后用数据响应。我需要它在客户端连接后开始向客户端写入数据。

我尝试在 post_init 中放置一个循环,但这似乎不起作用......客户端连接,服务器写入,但客户端似乎从未收到任何东西。建议?

测试服务器:

测试客户端:

谢谢...

0 投票
4 回答
2407 浏览

ruby - 将 Ruby/EventMachine 脚本作为系统服务运行

我使用 EventMachine 在 Ruby 中编写了一个简单的 UDP 服务器。我想让它始终在我的 Linux 机器上运行。关于如何将其包装为系统服务或以启动时启动、保持运行、可以监控的其他形式的建议?

0 投票
2 回答
2370 浏览

ruby - 是否可以使用带有 Ruby 1.8 的 EventMachine 发起多个并行 http 请求

em-synchrony.rb 使用 Fibers 实现了此功能,但我会选择 1.8 MRI 的非 Fibre 版本。