2

任何人都可以为 Ruby 推荐一个健壮的 TCP 服务器(比如用于 JavaScript 的 Node.js)吗?我知道有一个可用于 Ruby 的 TCPServer 类,但我需要更健壮的东西,因为我不想编写代码来处理多个客户端和多线程等。Ruby TCP 有没有库/框架有点像 Node.js 的服务器?

4

2 回答 2

3

听起来您想要EventMachineCelluloid。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 回答