Techioz Blog

Rails/websocket-rails で「無効なフレーム ヘッダー」Websocket の問題をデバッグする方法 (スタンドアロン)

概要

私は websocket-rails を使い始めており、通知用の古いポーリング システム (Ruby 2.1/Rails 4.0 上) を WS を使用したもう少し最新のものに変換しようとしています。私は WebsocketRails をスタンドアロン モードで使用しています。これが私の構成です。基本的にはデフォルトです。

WebsocketRails.setup do |config|
   config.standalone = true
end

また、デフォルトのポートで実行される新しい Redis をセットアップしました。ここでは通信の問題はないようです。

クライアント側では、websocket-rails の JS を追加し、接続を開いてチャネルにサブスクライブしようとするときに、次のようにしました。

@dispatcher = new WebSocketRails "localhost:3001/websocket"
@channel = @dispatcher.subscribe "notifications"

Chrome コンソールにエラーが表示されます。

WebSocket connection to 'ws://localhost:3001/websocket' failed: Invalid frame header 

Firefox では、エラーは異なりますが、依然としてエラーです。

The connection to ws://localhost:3001/websocket was interrupted while the page was loading.

WebSocket サーバーのログから、接続が開始されてから切断されたことがわかりますが、ログ レベルが「デバッグ」であっても、他のログはありません。他に確認できるエラーはなく、ざっと Google で検索しました。検索しても「無効なフレームヘッダー」に関するものは何も出てこないので、かなり行き詰まっています。

助けていただければ幸いです。

編集: 結局、物事を動かすために NodeJS+Faye を使用することになりましたが、それは非常にうまく機能していたので、この新しい可動部分をシステムに導入できることを嬉しく思います。この問題は私の特定の設定に基づく一時的なものにすぎないと確信していますが、場合によっては、物事を完了する必要がある場合もあります。

解決策

次のリソースを探していると思います。

質問スレッドから: Google Chrome での WebSocket のデバッグ