タグ

streamingとsinatraに関するudzuraのブックマーク (3)

  • 橋本商会 » sinatra/streamingでcomet (long polling)する

    良い感じのgem sinatra-cometioを作ったのでこっちを使うと良いと思います — チャットを作ってみた。 http://shokai-comet-chat.herokuapp.com/ Chrome/Safari/Firefox/Android/iPod touchで動いた。 sinatra-contribにsinatra/streamingというのがあった。eventmachineを使っているサーバー(thinなど)で動くらしい。herokuでも動いた。 Sinatra::Streaming (part of Sinatra::Contrib) 気で使うには厳しいしnode.jsを使えばいいと思うけど、Rubyでちょっとしたツールを作るのには便利そう。 一応同時に1000接続までは耐えた。ただ、Cometだとクライアント側とサーバー側両方で1分ぐらいでタイムアウトさせて接続

    橋本商会 » sinatra/streamingでcomet (long polling)する
    udzura
    udzura 2012/11/01
    同接1,000ぐらい目安らしい
  • uu59のメモ | Sinatra::Streamingのストリーミング部分だけNode.jsに押し付ける実験

    前回の続き。実際に軽く試してみたときのメモ。タイトルにもあるようにRuby側はSinatra。 (Chromeの)EventSourceがCORSに対応してないのでsame origin policyに引っかかってしまう問題 意外だった。XHRが対応してるくらいだし仕様にもあるしEventSourceの実装自体結構前からあるのでAllow-Control-Allow-Originで問題ないと思ってたけど実際にはChromeSECURITY_ERR: DOM Exception 18が出る。SharedWorker内から接続しにいってたので発見が遅れてちょっとハマった。 幸いにもXHRを使ってpolyfillしてくれるやつがあったのでそれを使うことにしたけど、しかしそれならLast-Event-IDを使う予定もないし生のXHRでもいいのではという疑問が湧いてくる。websocketについて

    udzura
    udzura 2012/08/08
    面白そう。 / 「前回」のリンクが切れているようです
  • uu59のメモ | Sinatra 1.3で追加されたstreamのHTTP解剖学

    注:rack 1.3.3以前だと落ちます。rack 1.3.4以上にアップデートしましょう。 Sinatra 1.3でstreamヘルパーが追加された。 require "rubygems" require "sinatra" get '/' do stream do |out| out << "It's gonna be legen -\n" sleep 0.5 out << " (wait for it) \n" sleep 1 out << "- dary!\n" end end get '/normal' do sleep 1.2 "normally response" end 全部の処理が終わるまで待って一気にレスポンスを返すのではなく、out << "string"のように逐次レスポンスを返す。なお、これの実装はRails 3.1で追加されたものやPHPのデフォルトの挙動、Tw

    udzura
    udzura 2011/12/21
    「Transfer-Encoding: chunked;」伴わないので使い辛い、しばらく触んないでいいやってなった記憶があるんす
  • 1