PHP を使用してライブ Web サイトを作成する方法を探していました。(COMET) もうずっと探していました。(約 1 か月) いくつかの PHP チャット スクリプトをチェックして、自分の Web サーバーで使用しましたが、ほとんどのスクリプトで問題が発生しました。(説明します)
これまでのところ、ほとんどの人が同じことを言っています: PHP は、COMET で使用できる最適な言語ではありません。チャット/コメットの例はせいぜいハックです。
ログインした人が互いにチャットできるようにするなど、Webサイトにいくつかの機能を追加したいので、これを求めています。それが、PHP ページへの有効な接続が必要な場所です。また、ブラウザ ベースのゲームを作成する予定であり、ライブ接続は引き続き必須です。
AJAX は 2 年前には珍しく、Facebook とともに輝いていました。今ではほとんどの人が使用しており、Web 開発の標準となっています。現在、COMET ベースの Web サイトが成長しています。Youtube、Google+、Facebook、EA の Battlelog など。使い方を学ぶべきだと思います。
さて、ここに私の質問があります。(以下の情報の一部は、Google で検索して収集したものです。正しいかどうかはわかりません。)
Python などの一部の言語には、このジョブ用に設計された特別な Web サーバーがあります。それらの 1 つが Tornado Web Server と呼ばれるものだと思います。何千ものアクティブな接続をシミュレートするように開発および構成されています。Appserv にはそのようなオプションはないと思いますが、適切な構成で NGINX を処理できると言う人もいます。本当ですか?どのような構成を行う必要がありますか? この仕事のための PHP Web サーバーはありますか?
最も推奨されるもののいくつかは次のとおりです。
a. APEを使用。
b. Socket.IO の使用
c. Node.js
PHPでそれらを使用する方法はありますか? どれが最も有望ですか?それらについてのガイダンスを教えていただけますか?これら以外に何かありますか?
コメット チャット スクリプトを使用しました。基本的には、データベースにクエリを実行し続け、ループ内で usleep() でスリープさせて、flush() で結果をブラウザーに出力します。(これはわかりにくかったので、簡単なコードを提供します)
while(true) { // query database // output the result // flush the browser // sleep for few seconds to lower cpu load }
usleep()
関数は基本的に、Windows ベースのオペレーティング システム上の Web サーバーを破壊しました。usleep()
Windows ベースの OS で実行されるコメット アプリケーションに依存するのは普通ですか? つまり、PHP スクリプトを「スリープ」する方法さえありますか? 何をしても、WIN サーバーと UNIX サーバーの両方で CPU 負荷が %100 になります。
PHP はこの分野で「本当に」弱いのでしょうか? PHP をあきらめて、他の言語に集中するべきですか? もしそうなら、どの言語をお勧めしますか? (その言語は有望なはずです。たとえば、HTML5 追加後、AS3 はあまり使用されなくなり、AS3 は JS が輝いている間にすぐに死ぬ可能性が高くなります。)
WebSync とは何ですか? PHPで使えますか?
次のアプリケーションを作成するには COMET を使用する必要があることに注意してください。
- ログインしているプレイヤーが互いにチャットできるチャット スクリプト。
- ブラウザベースのゲーム。すでにJSON/AJAXなどを使ってコーディングしているのですが、相手のステップを受け取るにはデータを引っ張る必要があるので、Alive接続が必要です。(高度なゲームを想像しないでください。せいぜいチェスのようなゲームについて話しているだけです。)
簡単なご案内をいただければ幸いです。結局のところ、インターネット上には非常に多くのランダムな記事があるので、私は毎日混乱しています. 人setInterval()
はCOMETと呼んでいるので、完全に混乱しています。