まずシナトラとの単純なファイルのアップロードを構築する方法である:File upload with Sinatra
だから今薄いとWebサーバーを実行するために、あなたのコードでこれを行うことができます。
class MyWebApp < Sinatra::Base
# here goes the sinatra app code
post '/something' do
# ...
end
end
EM::run do
Thin::Server.start('0.0.0.0', 8000) do
map('/'){ run MyWebApp.new }
end
end
thinはeventmachineを内部的に使用しています。私はwebrickがスレッドを使用していると思いますが、正直言って本当にそれを調べたことはありません。
rubyプロセスの前で、ファイルのアップロードに少なくともapacheまたはnginxを使用する必要があります(WebSocketが機能しないと思います)。 必要ならば簡単なnginx設定を含めることができます(私のディスクxD上で見つけるだけです)。
編集:別の解決策は、あなたがここに例があり、Webサーバとしてゴリアテを使用することです:https://github.com/postrank-labs/goliath/blob/master/examples/async_upload.rb あなたはシナトラ+ nginxの/ Apacheにとどまるべきアップロードの進行状況を表示する必要がない場合。
HTTPで 'multipart/form-data'の仕様を見て、そのアプローチをコピーしてください。 – millimoose
「HTTPファイルのアップロード」のためのグーグル。例えば。 http://www.vivtek.com/rfc1867.html – millimoose
これは役立ちます:https://github.com/igrigorikここにhttp://www.faqs.org/rfcs/rfc1867.htmlより非公式に、/em-websocket 次のリンク(server.rb)のコードは役立つかもしれませんが、唯一の注意点はSinatraを使用していますが、WEBrickのために簡単に変更できます: –