2011-08-25 7 views
6

まず第一に私が望むものは、少なくとも私のためにはかなり複雑ですが、一方ではエキサイティングです。delphiアプリ用リアルタイムWebベースのクライアント。の仕方?

私はデルファイで書かれたソフトウェアを持っており、リアルタイムのWebベースのクライアントが必要です。

要件:クライアント側の純粋なJavascriptを

  • シャイニーインターフェイスで

    • (GWT、SmartGWT)サーバとクライアントの間で
    • 非同期接続。 Ajaxプッシュ、ロングポーリング、彗星、WebSocket?デルファイ側
    サーバー側で

    • 規模、能力

    私は要求を処理するために、OverbyteからICSを使用することができると思います。私は、ICSパックのTHttpAppSrvが簡単なコンテンツを簡単に提供できることを知っていますが、Websocketはどうですか?また、どのようにして長いポーリングを行うことができますか?

    GWT(クライアント側のGWT、SmartGWT、デルファイ側のICS)とは何か、そこにサンプルプロジェクトがありますか、それとも他の解決策がありますか?

    更新 有用なコメントをいただき、ありがとうございます。 GWTがカスタムサーバーを使用できることは知っているのが良いですが、Arnaudは正しいと思います.GWTは独自のJettyサーバーを備えていますが、残念なことに私にとっては完璧なソリューションです。 :)私はGWT RPCと通信できるデルファイで書かれたサーバが必要だと思います。

    アップデート私はのために、ブラウザで実行しているクライアントを作成するための(あなたが少しの要件を変更した場合)しかし、私はよりよい解決策があると思う、私の元の質問のための最高の見えるアルノーBouchezの答えを受け入れた 2デルファイアプリケーション。アイデアを共有するためにここで少しコメントします。最後に私はnode.jsサーバを使い、それをZMQの助けを借りて私のdelphiアプリに接続しました。

  • +0

    GWT + GWT + RPC + Jetty(またはTomcat、JBoss、GlassFish、WebSphere ...)は、Delphiと簡単に統合できます。これらのツールを使用してアプリケーションのWebレイヤーを作成してから、同期または非同期インターフェイスにDelphiビジネスレイヤーを統合できるJava開発者がいる場合は、両方の優れたものを組み合わせることが可能です。追加のパフォーマンスを大幅に向上させるには、[memcached](http://memcached.org/)のような[Delphi](http://code.google.com/p/delphimemcache/)とJavaクライアントを利用できるソリューションをキャッシュすることを検討してください。 – mjn

    +0

    更新:興味があれば、Delphi/Javaコミュニケーションライブラリ用に書いたドキュメントの一部として完全なGWT/Delphi統合の例を構築し、完全なJavaソースコードで公開することができます。 – mjn

    +0

    @mjn Thx。はい、私は興味があります。クライアント側のSmartGWTウィジェットとデルファイ側の単純な例では、接続された非同期は非常に高く評価されます。 – balazs

    答えて

    3

    デルファイ側のHTTPサーバーについては、XPからMicrosoftが提供するkernel mode http.sys serverの使用を検討してください。 ICSよりも速くなければなりません。

    AJAXの部分については、Op4JSまたはElevateDBBuilderをご覧ください。

    これらのソリューションの優れた点は、オブジェクト・パスカル・コードを記述でき、このコードがJavaScriptに変換されることです。まだ完成していませんが、リリースのために少し待つ価値があります。

    もちろん、より古典的なAJAXソリューションが存在します(IntraWebまたはExtPascalなど)。どちらも独自のWebサーバーを実装しています。

    GWTについて、AFAIKはJavaの世界に深く関連したJavaライブラリです。 Delphiで動作させることはできません。 GWTについて

    編集:

    GWTは完全なクライアントサーバーフレームワークです。

    GWTに行くと、ある時点でアプリケーションの完全なJava書き換えが終了すると思われます。あるいは、フレームワークとしてGWTの最大の関心を欠いてしまうでしょう。それはあなたの選択です。

    私はフレームワークと同様に、JSONを通信に使用するなど、もっと標準的なアプローチに頼っています。

    +0

    リンクをありがとう、これらは素晴らしいツールですが、私はオブジェクト・パスカル・コードを書く必要はありません。何とかjavascriptに変換するのではなく、websocketを介して通信するか、クライアントとサーバー側の間でlongpollingします。実際にGWTはJavaコードをjavascriptに変換します。 – balazs

    +0

    @balazs Java全体にクライアントの部分を書きたいと思っていますか?しかし、GWTは、Javaサーブレットに基づくRPCメカニズムを使用して、サーバー側のリソースにアクセスします。だからあなたはJavaでサーバー部分も書く必要があります(またはDelphiでエミュレートしますが、難しいと思います)。私はGWTで深くコメントする答えを編集しました。 –

    +0

    GWTに関するいくつかの説明:* GWTは "独自のHTTPサーバー"を提供していないか、HTTPサーバーがJavaベースであることを要求します* GWTはJSONをプロトコルとして使用できるため、サーバー側のJavaサーブレットには依存しません – mjn

    0

    Intrawebをチェックしましたか?私は広範囲に自分自身を使用していない - それは非常にデルファイのWebアプリケーションのために人気があるようだ。

    私はIISまたはApacheでTWebBrokerを使用していくつかのWebアプリケーションを作成しました。これは非同期で、他のアプリケーションでDelphiコードを簡単に移植/共有することができます。そしてそれはAjax呼び出しをサポートします。

    1

    デルファイ、クライアント側の純粋なjavascriptと光沢のあるインターフェイス?あなたはUniguiについて話している!

    +0

    本当に、私はアプリ全体を書き換えたくない、それは50万行以上です。クライアント側を追加したいだけです。しかし、あなたは正しいです、Uniguiは非常に有望です、多分私は別のプロジェクトでそれを使用します。 – balazs

    1

    私は以前PHP、ASP、ColdFusionで作業していましたが、Delphiで(ほとんど)同じことをやりたかったのです。私はxxmを始めました。 DelphiとHTMLのコードが同じファイルにあり、ブラウザでリフレッシュしたときにライブラリを(再)コンパイルします。これらのライブラリ用にハンドラを作ったので、IIS、Apache、InternetExplorer、Firefox、またはDelphiベースのHTTP実装から直接実行できます。 (私はまた、HTTP.sysのハンドラで作業を始めたが、それは多くの、より多くの仕事を取るよ。)

    また、関連してあなたの質問に、私はストリーミングたかった、私は出力が転送になるだろうどのようなことを望んでいましたASAPをリッスンクライアントに送信すると、長時間実行しているページや長いポーリングなどを行うことができます。 GWTやその他のクライアントサイドスクリプトに関しては、プロトタイプとjqueryをうまく使っています。

    関連する問題