任何人都可以为 Ruby 推荐一个健壮的 TCP 服务器(比如用于 JavaScript 的 Node.js)吗?我知道有一个可用于 Ruby 的 TCPServer 类,但我需要更健壮的东西,因为我不想编写代码来处理多个客户端和多线程等。Ruby TCP 有没有库/框架有点像 Node.js 的服务器?
问问题
830 次
2 回答
3
听起来您想要EventMachine或Celluloid。EM 是事件驱动的并发,其运行方式与 node.js 非常相似。赛璐珞是更传统的多线程。
如果您使用 MRI,我建议您先查看 EM,因为 MRI Ruby 的并发模型存在限制。如果您使用的是 JRuby,那么 Celluloid 可能是正确的解决方案。
于 2012-12-17T23:23:25.363 回答
1
看看Sinatra,尤其是他们的“ README ”。它非常易于使用,可以处理多个客户端和多线程并且易于设置。
正如他们在网站首页上显示的那样,将其放入名为“hi.rb”的文件中:
require 'sinatra'
get '/hi' do
"Hello World!"
end
然后,在命令行类型:
gem install sinatra
ruby hi.rb
你会跑起来。如果您使用安装Thingem install thin
,Sinatra 将使用它作为其底层 HTTPd,您将获得Event Machine的基础。
据我所知,Sinatra 是使用 Ruby 在 Web 上获取内容的最快和最简单的方法,而且它非常健壮。对于正常的内部使用来说,它很棒。
作为 Sinatra 的下一步,请查看Padrino。它建立在 Sinatra 之上,但更像 Rails。
I'll also recommend looking at HAML for generating your HTML content. It's a great tool.
于 2012-12-18T14:17:28.290 回答