2

Rails Grape API (local.host:3001 で実行) でwebsocket-rails (スタンドアロン、local.host:3245 の redis と同期)を使用しようとしています。

次に、次の例を使用して、Grape API エンドポイントの 1 つからチャネル A にメッセージを送信しようとします。

WebsocketRails[:a_channel].trigger('welcome_message', 'Hello world!')

次に、Rails クライアント (local.host:3005 で実行) で、メッセージを取得してブラウザーに表示しようとします。WebsocketRails js クライアントを使用して、サーバーに接続できます。チャンネルにサブスクライブし、 wikiで提案されているイベントにバインドします。

var dispatcher = new WebSocketRails('local.host:3245/websocket');
var channel = dispatcher.subscribe('a_channel');
channel.bind('welcome_message', function(data) {
  console.log('channel event received: ' + data);
});

ただし、console.log には何も表示されませんが、websocket_rails.log を見ると次のように表示されます。

[2015-08-18 10:03:23.184] [[32mChannel[0m] [a_channel] {"welcome_message"=>"Hello world!"}

redis を使用redis-cli monitorして見ると、websocket_rails キーが表示されません (少なくとも、そこにあるはずだと思います...)。

chrome developer environment --> websockets --> headersクライアントとサーバー間の ping/pong が表示されますが、すべての変数が空です。

WebsocketControllers または events.rb ルートを使用しないでください。このwikiページに基づいて、私はそうする必要はないと思いました..また、APIのバージョン管理のために、コントローラーを使用せず、Grapeファイルにすべてを保持しています。

この問題を解決するための提案/アイデアはありますか?

前もって感謝します!

ノート:

  • レール 4.2.3
  • ルビー 2.1.0
  • API サーバーは Unicorn で実行されています
  • レールクライアントはシンで実行されています
4

0 に答える 0