問題タブ [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.
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) クライアントと通信する方法はありますか?
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"
):
このコードを使用して、特定のクライアントにイベントを送信します。
ruby-on-rails - Rails (Puma) を使用した Websocket - WebSocket ハンドシェイク中のエラー: 予期しない応答コード: 200
Rails4.1 アプリケーションで websocket を使用しようとしています。
関連するコード スニペットを次に示します。
Gemfile:
開発.rb
次のようにローカルでサーバーを起動しています。
Chrome コンソールに接続エラーが表示されます。
Rails で Web ソケットをローカルで使用するために必要なことを手伝ってくれる人はいますか?
アップデート1
Unicorn サーバーで実行したときに Websockets が Rails アプリで機能しないため、以下を追加しようとしましたが、シン サーバーでは機能しますが、役に立ちませんでした
初期化子/eventmachine.rb
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 で実行されています
- レールクライアントはシンで実行されています
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 のスケーラビリティを経験していますか?
ruby - Rails の WebSocket : WebSocket を使用しているときに、既存のアプリケーションで新しい WebSocketController を作成する必要がありますか?
ここにチャット アプリケーションがあります。WebSocketsのwikiを調べていました。コードは次のように ChatController に記述されています。
私の質問:これをどのように実装する必要chatcontroller
がありApplicationController
ますか? . を使用するための新しいコントローラーを作成するかwebsockets
、既存のchatcontroller
ものを拡張する必要があるかを変更する必要がありWebsocketRails
ますか? . 私は WebSockets を初めて使用するので、これに関するヘルプは本当に役に立ちます。
ありがとうございました 。
ruby-on-rails - WebSocket ハンドシェイク中のエラー: 予期しない応答コード: 503
angular と heroku で websocket レールを使用しようとしています。開発中ですが、現在は本番稼働中です。イベントを発行するサーバー コードと、イベントをリッスンするクライアントを次に示します。
私は本番環境で SSL を使用しています。もう設定してみました
でproduction.rb
、しかし役に立たない。
私が得ているエラーは次のとおりです。
ruby-on-rails - レールで em-websocket を使用してトーク・ツー・トーク・システムを構築する戦略は?
サーバープッシュシステムの良い例かもしれません。システムには多くのユーザーがいて、ユーザー同士で会話することができます。次のように実行できます。1 人のユーザーが (websocket を介して) サーバーにメッセージを送信し、サーバーがそのメッセージを他のユーザーに転送します。重要なのは、ws (websocket オブジェクト) とユーザーの間のバインディングを見つけることです。以下のようなコード例:
次の問題を把握したい:
ws
ディスクまたはデータベースに格納できるように、オブジェクトをシリアル化できますか? そうしないと、バインディングをメモリに保存することしかできません。em-websocket と websocket-rails の違いは何ですか?
websocket におすすめの gem はどれですか?