2011-09-12 8 views
2

私はアプリでリアルタイムに情報をプッシュするためにCrampで遊んでいました。そのすべてはローカルで素晴らしい仕事ですが、私がヒロクに追いつくと、私はポートに問題があるようです。Cramp and heroku

私はWebSocketを

class LiveSocket < Cramp::Websocket 

から継承けいれんで設定したソケットを持っているし、私も基本的には、ホームページで

class HomeAction < Cramp::Action 

のためのいくつかのERBをレンダリングホームと呼ばれるけいれん作用を有します私のルートファイル私は以下のファイルセットと静的ファイルサーバを設定しました

Rack::Builder.new do 

    puts "public file at #{File.join(File.dirname(__FILE__), '../public')}" 
    file_server = Rack::File.new(File.join(File.dirname(__FILE__), 'public')) 



routes = HttpRouter.new do 
    add('/').to(HomeAction) 
    get('/LiveSocket').to(LiveSocket) 
end 
    run Rack::Cascade.new([file_server, routes]) 



end 

次にクライアントが終了すると、JavaScriptが接続されます

var ws = new WebSocket("ws://<%= request.host_with_port %>/LiveSocket"); 

私はローカルですべてそうです。サーバーに接続して通知を受信し始めます。 Herokuの上で私たちは、シーダー・スタック上に薄い実行すると、私は、サイト自体が細かいロードページをロードすると

web: bundle exec thin --timeout 0 start -p $PORT 

のように見えるのプロファイルを持っていますが、私は

を言うエラーが出るのWebSocketを接続しようとするに
servername.herokuapp.com Unexpected response code: 200 

これは、herokuがリクエストをどのようにルーティングするかとは関係がありますが、私はheroku上でnode.js websocketサーバーを実行できることを知っています。

ご協力いただきありがとうございます。

歓声

スチュアート

答えて

0

私はHerokuのは、WebSocketを:(それを説明するだろう​​

+0

ああ井戸をサポートしていないと思う。私は、そのページで100回を見つめていなければならないと気づいたことがない。I私がクライアント側でsocketIOを設定していれば、私は長いポーリングに落ちるかもしれません。 –