最高のRubyon RailsWebSocketツール[クローズ]


81

Rails 3でプロジェクトを開始しましたが、通知を追加する必要があります(Facebookのように)。iPadなどのサポートデバイスにWebSocketを使用するのが最善の方法ですが、Railsに簡単に実装するための優れたツールが見つかりません。Pusherappを見つけましたが、価格が高すぎて、サードパーティの会社にデータを提供するのは賢明ではないと思います。だから必要なもの:

  • オープンソース
  • ある種のチャネルはサポートします
  • Railsのヘルパー(およびRails 3の操作)

回答:


80

プレーンなWebSocket実装を検索している場合は、EM-WebSocketがおそらく最適です。非フラッシュフォールバック(古い電話やiPhone 3Gなど)のサポートが必要な場合は、Socket.IO-rackを試してください。

Pusher(認証とチャネル付き)のようなフル機能の実装には、SockyJuggernautの2つのオープンソースの選択肢があります。

Sockyは、EM-WebSocket(プッシャーなど)を使用した純粋なRubyプロジェクトであり、Rails用の優れたツールがいくつかあります。一方、Juggernautにはより多くの履歴(およびより多くのユーザーatm。)がありますが、新しいバージョンはNode.JSに書き直され(クライアントはまだルビーベースです)、Redisが必要です。どちらも正常に動作するはずです。


4
興味のある方のために、Juggernautは非推奨になりました。著者は、代わりにHTML5サーバー側イベントを使用することを推奨し、非推奨-発表リンクで素晴らしい解説を提供します。
ジェフディッキー2014年

3
@Jeffのコメントのフォローアップとして、Rails4はActionController :: Streamingモジュールを介してSSEの組み込みサポートを提供します。ここのドキュメント:api.rubyonrails.org/classes/ActionController/Streaming.html
user456584

ヨウ素HTTP /用WebSocketサーバは、ネイティブパブ/サブならびにRedisの接続を提供ルビーのC拡張です。これは、Railsのミドルウェアとしても使用できるpleziフレームワークによって使用されます。
Myst 2018年



9

ニーズを満たすかもしれないが、少し難解なもう1つのオプションは、Jrubyアプリサーバーの1つを使用して、JavaWebSocket実装の1つを使用することです。Jetty(トリニダードの拠点)は、利用可能な最高のWebSocketサポートを備えていることで知られています。もう1つのオプション(これはかなりクールです)は、メッセージエンドポイントにWebSocketラッパーを備えたメッセージングサーバーを使用することです。例として、Torquebox(専用のJruby / Railsアプリサーバー)にはHornetMQのサポートが組み込まれており、HornetMQはWebSocketをサポートしています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.