1

「websocket-rails」gem をインストールし、デフォルト設定を行った後、JS ディスパッチャーを作成したところ、Chrome コンソールで 404 エラーが発生しました。

これは私のJSです:

var dispatcher = new WebSocketRails('localhost:3000/websocket');

これは私が得るメッセージです:

'ws://localhost:3000/websocket' への WebSocket 接続に失敗しました: WebSocket ハンドシェイク中のエラー: 予期しない応答コード: 404

他のすべては、最初のステップガイドで提案されているとおりです

events.rb

subscribe :test, :to => ChatServerController, :with_method => :test

controller/chat_server_controller.rb

class ChatServerController < WebsocketRails::BaseController
  def initialize_session
    # perform application setup here
    controller_store[:message_count] = 0
  end

  def test
      puts 'Hello'
  end
end
4

1 に答える 1

1

github に投稿された宝石の依存関係を含む潜在的な解決策が 1 つあります。しかし、レポを見ると (151 の未解決の問題、27 のプル リクエスト)、この gem が積極的に維持されているようには見えません。2016 年にクローズされた問題は、それらをオープンした同じ人々によってクローズされています。

false に設定された 2 番目のパラメーターを含めることで、Websocket に http を強制的に使用させることで、おそらくアプリケーションを機能させることができます。

var Dispatcher = new WebSocketRails('localhost:3000/websocket', false);

http ポーリングを使用したスケーラビリティと、websocket-rails gem の将来について懸念があります。私にとって、最善の方法は Rails 5 にアップグレードしてAction Cableを使用することです。

于 2016-05-29T15:50:36.127 に答える