小编Col*_*ant的帖子

Sinatra与EventMachine WebSockets一起工作是否成功?

我一直在使用Sinatra一段时间,我想通过websockets推送数据,为我的web-app添加一些实时功能.

我已经成功地使用了gem'em-websocket',但是还没能编写一个带有sinatra Web服务器和web-socket服务器的ruby文件.

我试过旋转跑!或者开始!在单独的线程中关闭方法但没有成功.

有没有人得到这个工作?

我希望将它们放在同一个文件中,然后在两个服务器之间共享变量.

谢谢!

ruby rack sinatra eventmachine websocket

36
推荐指数
5
解决办法
2万
查看次数

7
推荐指数
1
解决办法
4528
查看次数

在一堆机架式应用程序/中间件之间共享对象的最佳/最优雅方式?

在机架安装的应用程序/中间件之间共享对象的最佳习惯是什么?

例如,这个config.ru有两个映射到不同端点的Sinatra应用程序:

class App1 < Sinatra::Base
  # ...
end

class App2 < Sinatra::Base
  # ...
end

map '/app1' do
  run App1
end

map '/app2' do
  run App2
end
Run Code Online (Sandbox Code Playgroud)

现在,如果这两个应用程序需要共享一个对象,无论是数据库连接器还是任何其他对象,那么最好的成语是什么?

我基本上看到两个选择:

1-在config.ru级别创建一个常量,并简单地在应用程序中引用该常量.例如:

SHARED_OBJECT = "hello world"

class App1 < Sinatra::Base
  get '/' do
    SHARED_OBJECT
  end
end

class App2 < Sinatra::Base
  get '/' do
    SHARED_OBJECT
  end
end

map '/app1' do
  run App1
end

map '/app2' do
  run App2
end
Run Code Online (Sandbox Code Playgroud)

2-在config.ru级别创建单例对象并在应用程序中使用它.例如:

class SharedObject
  include Singleton

  def test
    @test ||= "hello world"
  end
end …
Run Code Online (Sandbox Code Playgroud)

ruby rack sinatra

7
推荐指数
1
解决办法
1542
查看次数

标签 统计

rack ×2

ruby ×2

sinatra ×2

android ×1

changelog ×1

eventmachine ×1

websocket ×1