1

まず、私はすでに見てきました:

faye ruby​​ クライアントが動作しない

推奨事項を試しましたが、まだうまくいきません。

私のコードは次のとおりです。

def broadcast(channel, data=nil, &block)
  return if Rails.env.test?

  if data.nil? && block_given?
    data = capture(&block)
  end

  client = Faye::Client.new(APP_CONFIG['faye_url'])
  client.publish(channel, data)
end

Net::HTTP.post_form を使用してみましたが、サーバーはエラーや警告などなしでフリーズしました。私はそれを EM.run ブロックに入れてみましたが、うまくいきませんでした。curl で問題なく Faye に公開し、サブスクライバーに送信できますが、何らかの理由で Ruby クライアントが機能しません。

faye-rails、ruby 1.9.3、rails 2.3.13 を使用しています。

サーバーはnginxの背後にあり、ngnix ip/portとthin ip/portの両方を試しました。それでもうまくいきませんでした。

本番環境ではなく、開発環境では問題なく動作します。

アップデート:

WebSockets と EventSource の両方を無効にして、長いポーリングを強制的に使用するようにしました。これにより、エラーなしで ngnix を介して動作するようになりました。

また、ラック ミドルウェアとしても実行されるため、追加のポートは必要ありません。

4

0 に答える 0