2012-03-29 14 views
0

ショートバージョン:私はクライアントをPHPサーバーに接続したいが、同時に実行する10個のPHPスクリプトのサーバーには制限がある。クライアントとPHPのバックエンド通信:Sokets、Stream、TCP/UDP?

質問です:制限の下に滞在しながらPHPスクリプトを使用してクライアントを接続するための最良の方法は、何ですか?

ロングバージョン:
私の以前の質問は、私は本当に後の午前何を示していますが、ここでは再びです:バックエンドとして
が、私はクライアント側としてJavaアプレットを使用してAAウェブチャットを開発したい、とPHPサーバ。通常の状況下では、私はこのような質問をすることはありません私の検索にポップアップGoogleの最初のことを使用してください。しかし、今は通常の状況ではなく、制限の下で:私のホスティングのようなサーバーの使用法、共有アカウントのホスティング、および10のエントリープロセス(別名、同時に実行されるPHPスクリプトの数)。サーバーを私のチャットに置き換え、できるだけパフォーマンスを下げてください。

私はDelphiでTCPを使用して、クライアント/サーバー接続を開発しましたが、それはずっと前だった、と私はそれの多くを忘れてしまいました。そして今、私はそれを再現しようとします、私はそれについて多くを知らなかったことを実感します。

は、だから私は、私の研究に基づいて、いくつかの質問を得た:

ソケットは何ですか?
私はこれをゴーグルでしたが、私はこれに対して本当に明確な答えを見つけられませんでした。これは、互いに通信する2つのプログラムの標準的な方法ですか?そして私の間違った知識のこのところ多分1つは

がソケットによるTCP/UDPプロトコルです...ですか?
私も私のこの質問を説明する方法を知らない ...

正確ストリームは何ですか?
C++の知識から知っているのは、ファイルをバイナリ形式で開いて、いつでも読むことができることです。私のC++の知識も古いので間違っているかもしれません。私の懸念はそれがこのスクリップを積極的に実行している

はまた、私はPHPのソケットについて読み、そして私はその能力がsocket_create_listenとポートに耳を傾けることについて見つかりましたが?無限ループのように?私はこれに10のプロセス制限のために頼んでいます。
と私はクライアントとのTCP接続を開始した場合、スクリプトは再び無限ループで実行されますでしょうか? アクティブなプロセスでカウントされますか?

私はそれだけで、それが終了したとき、それはスクリプトを終了について一斉そして忘れ備わって送信しているため、UDPは、アクティブな接続を必要としませんが、私はTCPを知らない知っています。

長い間、申し訳ありませんが、多くのご質問、お手伝いできます、ありがとうございます。

EDIT: I約/ POSTメソッドをGET忘れました! 私はウェブチャットを計画しており、コミュニケーションが必要だと言っていたが、GET/POSTメソッドもあり、スクリプトはすぐにスクリプトを終了して終了させたが、再び10プロセス制限、11プロセスが同時に実行しようとするとどうなりますか?

同時に実行中のプロセスを制限する方法はありますか?キューに入れて、他の人が終了するまで待ちますか?

+0

契約より良いホスティングサーバー。 Hostgator.comは、スタータープランで同時に25のプロセスを受け入れます。 – PSyLoCKe

答えて

1

サーバが10個の同時スレッドに制限されている場合、これは厳しい制限であり、あまり多くのことを行うことはできません。あなたができることは、要求をできるだけ小さくし、できるだけ少ないものをPHPで解決することです。したがって、並行性の可能性は非常に小さくなります。

理想的には、すべてのPHPが非常に迅速に開始されて終了し、多くの場合静的コンテンツ(html、js、img、およびcssファイル)にリダイレクトされます。

たぶん、あなたはあなたの全体のWebアプリケーションのHTMLファイルをたくさん作り、サーバ間の通信のためのいくつかのajax.phpファイルを持つことができます...

+0

はい私は非常に制限があることを知っていますが、私はその経験のためにこれを使用したいと思います。私はちょうどそこに2つの質問を置くのを忘れてしまった。 – NaGeL182

+0

私はまだ何らかの「api」があなたの問題を解決すると思います。しかし、あなたの問題が実現可能かどうかはわかりません。私はあなたの問題は、あなたが正確に1秒未満で10の要求を満たすことができれば解決されると思います。しかし、それらのすべてが1秒を必要とし、1秒以上が1秒以上必要な場合は不可能です。だから、その制限は実際にはアーキテクチャ上ではない、おそらくあなたがそれを定義する方法を解決するために問題は不可能であろう。 – Tei

関連する問題