8

私は、フックボックスを使って構築されたいくつかのプロジェクトを持っています。これは、Webクライアントとサーバーの間でリアルタイムメッセージをやり取りすることを管理します。フックボックスは素晴らしかった。トランスポート層を完全に抽象化し、エレガントなセキュリティシステムを使ってさまざまなチャンネルに簡単なパブリッシュ/サブスクライブインターフェースを公開した。リアルタイムWebライブラリ - hookboxをsocket.ioまたはそれと置き換えてください。

残念なことに、フックボックスプロジェクトは、元の管理者がオーナーシップを引き渡そうと努力することもしないため、すぐに混乱するようになりました。 (Grrr!)それでは、それを実行可能なプラットフォームと考えるのは難しいです。

ウェブアプリケーションとのリアルタイム通信を提供するための良いプラットフォームは何ですか?要件:

  • HTML5ウェブソケットまたはCOMETを利用できるようにして、見た目にはクロスブラウザで動作します。トランスポートの選択は、アプリケーション層には見えないようにする必要があります。私は古代のブラウザ(IE6)のJavaScriptとサーバー側の両方のシステムから
  • クライアントのアクセスを気にしない(つまり、PHP/Pythonの/ルビーで) - これは
  • は、任意のペイロードを持つパブリッシュ/サブスクライブ・メタファーを提供する非常に重要です
  • 私はそのソケットを聞いた

(あると便利)任意のWebアプリケーションへのコールバックを通じてファイングレイン・アクセス・コントロール

  • すなわち存在、クライアントがチャネルに接続されている他のどのようなクライアントを参照することができます。 ioはこれを行うことができますが、スタックの下層にあるという感覚を得ることができます。それは非javascriptライブラリに接続できますか?認証しますか?

  • 答えて

    2

    まだ試したことはありませんが、ノードノックアウト2011のエントリーについてはPusherを探し始めました。 JavaScriptに加えて、それは次の非jsのクライアントをサポートしています。

    • のObjective-C
    • のActionScript
    • .NET &シルバー
    • ルビー
    • Arduinoの

    メッセージングの場合サンドボックスプランを使用して無料でサービスを試すことができます(20件の接続&/100,000メッセージまで)、あなたのニーズを満たしているかどうかを確認してください。 (私は、 "存在"の要件について少し不明ですが、ドキュメントでカバーされるかもしれませんが)。

    +0

    PHPとPythonのクライアントのように、オープンソースがうまくいくでしょうが、そうでなければ私が探しているようです。ありがとう! – Leopd

    3

    私は最近8か月間でNodeJSSocket.IOで非常に良い経験をしています。サーバーサイドのコンポーネントは非常に安定しています。非常に高いメッセージ量で動作させておくことができ、常駐メモリは20MBを超えることはありません。これまでのところ、私はサーバを終了させることなく約4週間稼働させることができましたが、更新する必要があったからです。私のサーバサイドコード。

    HTML5ウェブソケットまたはCOMETを利用できるようにクロスブラウザで動作します。トランスポートの選択は、アプリケーション層には見えないようにする必要があります。私は古代のブラウザ(IE6)

    は、任意のペイロード

    Socket.IOはまた、ソフトウェアの素晴らしい作品ですとパブリッシュ/サブスクライブ・メタファーを提供し気にしないでください。それは積極的な開発の下にあり、EventEmitter(NodeJS)セマンティクス 'on'(購読)と 'emit'(公開)を使用して簡単なpub/subスタイル抽象化を組み込んでいます。使用されているトランスポートに関してクライアント側でも非常に透過的です。主にWebSocketサポートのために使用しましたが、Flashベースのソケット、xhr-polling、jsonpポーリングに戻すことができます。 JavaScriptとサーバ側システムの両方から

    クライアントアクセス(すなわち、PHP/Pythonの/ルビーで) - これは

    NodeJSはV8エンジン上で実行されている、JavaScriptので重要です。それには、多くの他のものの中でも、データベースやメッセージキューなどの外部コンポーネントとのインタフェースだけでなく、素晴らしい抽象化を提供するトンの3rd party modulesがあります。システムをphp/python/ruby​​で実行する限り、他のサーバーと同様に動作します。あなたの通信方法(基本的なTCP/IP、あるいはHTTP POSTやGET、さらにはファイルシステム経由)を選択すると、NodeJSは誰がデータを提供しているかを本当に気にしません。個人的には、私は素晴らしい仕事をしているC#クライアントを実装しました。 「パブ/サブを内蔵したものの

    は、クライアントが他のクライアントは、チャネルに接続されたそれは、いずれかが「存在」ロジックが組み込まれていないいない

    すなわち存在しているかを確認することができます既存のプレゼンスデータを新しいクライアントが取得できるように、Socket.IOのロジックはすでにサーバー上に保存されていなければなりません。私は状態を保持しているサーバ上に自分自身の基本的なpub/subを実装しました。(NodeJSサーバコードと基本Socket.IOスタブを含む)それは50行のJavaScript(空白を含みます)でした。任意のWebアプリケーションへのコールバックを通じて

    ファイングレイン・アクセス・コントロールを使用すると、任意のWebアプリケーションへのコールバックを通じてファイングレイン・アクセス・コントロール」によって何を意味するか

    わからない(すてきが持っている)(すてきが持っています) '。彼らが持っているpub/sub event/observerのメタファーはコールバックを使用しているので、特定のアクションを特定のイベントに接続します。

    auth?

    私のシステムでは認証は必要ありませんでしたので、私はそれを直接話すことはできません。しかし、NodeJSモジュールを閲覧すると、「OpenId、Google、OAuth、Twitter、LinkedIn、Yahoo、Readability、Dropbox、Justin」と言われるone moduleはもちろん、LDAPやOAuthを含む多くの認証モジュールが利用可能であることがわかります。 "

    +0

    もちろん、RESTインターフェイスを使用して、どの言語を使用してパブ/サブシステムにメッセージを投稿するのも簡単です。難しくて重要な部分は、リアルタイムのメッセージを非javascriptクライアントにプッシュすることです。リアルタイムコールバックを他の言語に変換するには、クライアントライブラリが必要です。 – Leopd

    0

    私はさまざまなことのために多くのライブラリを持っているnode.jsを使用しています。リアルタイムメッセージングのライブラリの1つはnow.jsです。私はこれに多くの経験はありませんが、それを試して、私はそれがうまくいって、あなたが必要と言ったすべてを持っていると言います。

    +0

    javascript以外のクライアントをサポートしていないか、あらゆる種類のアクセス制御を持っているように見えません。 – Leopd

    +0

    アクセス制御は、おそらくnode.jsの他のライブラリを使用して行うことができます。私はあなたの質問を解釈するので、ブラウザとサーバー側のプログラムからのアクセスが必要です。あなたがnode.jsにあなたのサーバを書いているなら、あなたは両方を持っています。私はあなたを誤解したことがありますか? – Godisemo

    +0

    はい、あなたは誤解しています。私は解決策を探しています。私は解決策を構築するためのAPIではありません。 – Leopd

    関連する問題