問題タブ [websocket-rails]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
172 参照

ruby-on-rails - Ruby クライアントから websocket-rails を呼び出す

websocket 接続を介してメッセージを送信したい純粋な Ruby クライアントがあります。websocket は Rails アプリケーション内で実行され、websocket-rails gem ( https://github.com/websocket-rails/websocket-rails )を使用しています。

次のコードを使用すると、websocket に正常に接続できますが、メッセージを受信できません。

これはおそらく、websocket-rails 通信で想定されるメッセージのイベント名を指定できないためです。websocket-rails websocket を使用して Rails (または Python) クライアントと通信する方法はありますか?

0 投票する
0 に答える
152 参照

ruby-on-rails - 特定のクライアントにイベントを送信するときの websocket-rails での Redis エラー

私は'threadsocket-rails'websocket-rails gem のブランチとメモリサイズ 30MB の heroku の RedisCloud サービスを使用しています (リンク: https://elements.heroku.com/addons/rediscloud ) 。

私の構成では、チャネル同期を有効にし、redis_options を次のように設定しました。

Android または iOS デバイスがイベントをトリガーすると、次の空のハッシュが取得されます (redis を使用する場合):

このエラーも表示されます:

それ以外の場合、正しい応答が得られます( "message":"user join new channel"):

このコードを使用して、特定のクライアントにイベントを送信します。

0 投票する
1 に答える
5831 参照

ruby-on-rails - Rails (Puma) を使用した Websocket - WebSocket ハンドシェイク中のエラー: 予期しない応答コード: 200

Rails4.1 アプリケーションで websocket を使用しようとしています。

関連するコード スニペットを次に示します。

Gemfile:

開発.rb

次のようにローカルでサーバーを起動しています。

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

Rails で Web ソケットをローカルで使用するために必要なことを手伝ってくれる人はいますか?


アップデート1

Unicorn サーバーで実行したときに Websockets が Rails アプリで機能しないため、以下を追加しようとしましたが、シン サーバーでは機能しますが、役に立ちませんでした

初期化子/eventmachine.rb

0 投票する
0 に答える
419 参照

ruby-on-rails-4 - Websocket-rails がチャネルへのメッセージをトリガーしない (スタンドアロン、同期)

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で提案されているイベントにバインドします。

ただし、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 で実行されています
  • レールクライアントはシンで実行されています
0 投票する
1 に答える
410 参照

ruby-on-rails - gem「websocket-rails」とそのスケーラビリティ

私たちは現在、チャットを開発しています (Facebook のように、メッセージが保存されています)。現時点では、最低 500 人のオンライン ユーザー (出会い系サイト) があり、ピーク時には最大 3000 人のユーザーが同時にオンラインになっています。

Websockets への切り替えは私たちにとって「重要なこと」ですが、gem「websocket-rails」を使用している間はパフォーマンスが少し心配です。https://www.igvita.com/2008/11/13/concurrency-is -a-myth-in-ruby/はいくつかの疑問を引き起こしています。

私たちの質問は次のとおりです。

websocket-rails がアプリケーションを強制終了しているかどうか もう 1 つの選択肢は、jsnode サーバーを実行し、faye に切り替えることです。これは、スケーラビリティの問題ではありません。誰かが websocket-rails のスケーラビリティを経験していますか?

0 投票する
1 に答える
543 参照

ruby - Rails の WebSocket : WebSocket を使用しているときに、既存のアプリケーションで新しい WebSocketController を作成する必要がありますか?

ここにチャット アプリケーションがあります。WebSocketsのwikiを調べていました。コードは次のように ChatController に記述されています。

私の質問:これをどのように実装する必要chatcontrollerがありApplicationControllerますか? . を使用するための新しいコントローラーを作成するかwebsockets、既存のchatcontrollerものを拡張する必要があるかを変更する必要がありWebsocketRailsますか? . 私は WebSockets を初めて使用するので、これに関するヘルプは本当に役に立ちます。

ありがとうございました 。

0 投票する
1 に答える
6537 参照

ruby-on-rails - WebSocket ハンドシェイク中のエラー: 予期しない応答コード: 503

angular と heroku で websocket レールを使用しようとしています。開発中ですが、現在は本番稼働中です。イベントを発行するサーバー コードと、イベントをリッスンするクライアントを次に示します。

私は本番環境で SSL を使用しています。もう設定してみました

production.rb、しかし役に立たない。

私が得ているエラーは次のとおりです。

0 投票する
2 に答える
118 参照

ruby-on-rails - レールで em-websocket を使用してトーク・ツー・トーク・システムを構築する戦略は?

サーバープッシュシステムの良い例かもしれません。システムには多くのユーザーがいて、ユーザー同士で会話することができます。次のように実行できます。1 人のユーザーが (websocket を介して) サーバーにメッセージを送信し、サーバーがそのメッセージを他のユーザーに転送します。重要なのは、ws (websocket オブジェクト) とユーザーの間のバインディングを見つけることです。以下のようなコード例:

次の問題を把握したい:

  1. wsディスクまたはデータベースに格納できるように、オブジェクトをシリアル化できますか? そうしないと、バインディングをメモリに保存することしかできません。

  2. em-websocket と websocket-rails の違いは何ですか?

  3. websocket におすすめの gem はどれですか?