2011-02-07 24 views
0

私はライブデータ(他のサーバからフェッチされている)をソケットを使ってクライアントに配布する必要がある作業に取り組んでいます。私たちのユーザdrupalはフレームワークとして、したがってPHPの私の選択です。phpソケットプログラミング、長所と短所とアプローチ

1)このサーバーを開発する際に考慮する必要がある主な要因を知りたいと思います。セキュリティ、認証、負荷などと同様にアプローチする必要があります。役立つブログや記事はありますか。

2)これにはPHPよりも良い選択肢がありますか?

3)また、これで私を助けるDrupalモジュールがあります。

答えて

2
  1. 私はあなたに接続している複数のサーバについて話しているとき、あなたはNONBLOCKモードをconcederしたいことができる1つの問題について考えることができます。
    ブロッキングモードで作業している場合、各サーバーはその時点で接続できるため、メッセージを配信するのが遅れることになります。 http://il2.php.net/manual/en/function.socket-set-nonblock.php

  2. 私はJavaがうまくいくと思います。マルチスレッドはここで助けになるかもしれません。

  3. 私の視点からは、これはあなたが自分自身を開発するために必要なものです。ソケットプログラミングには多くの注意が必要です。

1

DrupalはウェブCMSで、それは、高度なWeb機能や伝統的な HTTPリクエストのパラダイムによく適合メディア、Webアプリケーションへの光のための枠組みとして使用することができます。 IMHO、ソケットを使用して複数のサーバーからクライアントにライブデータを配信することは、Drupalの設計の背後にある基本的な前提に適合しません。

PHPを使用してソケットサーバーに書き込むことができます。これまでは一般的ではありませんでしたが、ますます利用可能になっています。 ReactPHPは、ソケットプログラミングに適した非ブロッキングI/Oライブラリ/フレームワークです。 RacthetはReactPHPを使用したPHPのWebSocketサーバーです。いずれの場合においても

、これは、DjangoにRoRの、DrupalのでWebアプリケーションを開発するようなものをネブラスカないだろう、symfonyの、など

Drupalのウェブサイトとの統合が必要な場合は、Service moduleはにすてきなソリューションです。 RESTまたはXML-RPC APIを提供します。もちろん、DrupalのMySQLデータベースへの直接アクセスも可能ですが、使用したDrupalモジュールの知識をもっと必要とするでしょう。行動を複製し、データの管理方法を理解する必要があるからです(たとえば、特定のCCKフィールドの格納方法あなたのデータベースに)。

注:この回答の以前のバージョンでは、Twisted(Python)、EventMachine(Ruby)、Node.js(JavaScript)の次のソリューションへの参照が含まれていました。 PHPが必要ない場合、これらはすべて有効なソリューションです。 以前のバージョンの回答もphpsocketdaemonとなっていますが、最近ではReactPHPはよりクリーンで堅牢なソリューションです。

関連する問題