2013-08-17 11 views
17

私はRails 3.2.13で 'faye' gemを使用しています。私はlocalhost上でfayeを実行しています:9292と私のアプリケーションはlocalhost:3000です。私は、コマンドラインからのカール要求でポップアップウィンドウをアクティブにすることができますが、私のアプリケーション内から接続を確立することはできません。私は私のコンソールで取得していますエラーです:失敗した「9292 /フェイ:// localhostのWS」:へWebsocketヘッダーがありません

のWebSocket接続エラーのWebSocketハンドシェイク中:ヘッダは、私がしようとしています

が欠落している「アップグレード」私のapplication.jsファイルにfayeのヘッダーを定義してください:

$(function() { 
    var faye = new Faye.Client("http://localhost:9292/faye"); 
    faye.setHeader("Access-Control-Allow-Origin", "http://localhost:3000"); 
    faye.subscribe('/messages', function (data) { 
    alert(data); 
    }); 
}); 

これはヘッダーを追加する正しい方法ですか?

ここで同様の問題についての議論が見つかりました:https://github.com/faye/faye/issues/222この場合、エラーはssl設定がロードされていないことに関連しているようです。私はラックの宝石のlibディレクトリを調べたところ、

def ssl? 
    scheme == 'https' 
end 

これは問題ありません。設定が正しくロードされていないかどうかはどうすればわかりますか?

次に見える場所についての手がかりは非常に高く評価されます。

+0

はrailscastを次からこのましたか?私は同じ問題があります。 –

答えて

35

ライアンベイツのrailscastを追従しながら、私は同じ問題を持っていた:http://railscasts.com/episodes/260-messaging-with-faye

フェイウェブソケット・サーバは、薄いウェブサーバー上で実行し、アップグレードヘッダを送信するためのアダプタが必要です。

あなたのフェイのrackup(.ru)ファイルに次の行を追加します。

Faye::WebSocket.load_adapter('thin')

私はここで、この解決策を見つけた:https://github.com/ryanb/private_pub/issues/39#issuecomment-4225647

関連する問題