ruby - 是否可以从 Thin/Rack/Sinatra 访问 Ruby EventMachine channel ?

标签 ruby sinatra rack eventmachine thin

我希望利用 Sinatra 为内部项目构建一个简单的 RESTful 通知系统。我过去曾使用 EventMachine channel 来订阅/发布事件,但在之前的所有案例中,我都是直接使用 EventMachine。

有谁知道是否可以从 Sinatra 应用程序甚至从某些 Rack 中间件创建、订阅和发布到 EventMachine channel (在 Thin 中运行)?

最佳答案

看看async_sinatra .

基本上,为了在 Thin 中运行时能够使用 EventMachine,您需要让它知道您想要异步处理请求。 Rack 协议(protocol)在设计上是同步的,Thin 期望在处理程序返回时完成请求。有多种方法可以让 Thin 知道您想要异步处理请求(有关示例,请参阅 think_async),以及 async_sinatra使这变得非常容易。

关于ruby - 是否可以从 Thin/Rack/Sinatra 访问 Ruby EventMachine channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5756609/

相关文章:

ruby - update(other_hash) 和 merge(other_hash) 的区别

ruby-on-rails - 替换 ActiveRecord 5 中的 ActiveRecord::ConnectionAdapters::ConnectionManagement

ruby - Mechanize 与 Sinatra 冲突

ruby - 如何测量 Rack 或 Sinatra 应用程序的内存使用情况?

ruby-on-rails-3 - 如何更改 Rack 离线的默认行为

ruby - 精简读取已配置的用户环境

ruby-on-rails - 其中 dispatch.fcgi 提供与 "rackup"相同的行为

html - 在 (i18n) yml 中插入 HTML 特殊字符

ruby - 为什么我不能在 Mac OS Sierra 上安装 Sass?

ruby - 使用 2 个参数创建一个方法来修改 Ruby 中数组中的元素,其中一个是原始数组