1

Facebookアプリとなるマルチプレイヤーゲームに取り組んでいます。調査を行ったところ、サーバー側のプッシュには、Node.jsまたはPythonで最適に実装されるcometが必要であることがわかりました。

しかし、FacebookのAPIはjavascriptとPHPでのみ書かれています。サードパーティのAPIがあることは知っていますが、それらを使用したくありません。FacebookのコードはすべてJavaScriptでクライアント側で実行できると思いますが、特にPHPで実行するのが非常に簡単な場合は、少し難しいでしょう。

私によると、私のオプションは以下のように要約されます

  1. サーバー側のプッシュをそのままにして、定期的なAjaxリクエストとPHPを使い続けます。

  2. Node.jsに固執し、PHPを離れて、すべてのFBプログラミングをjavascriptで実行します(それが可能であれば、それは可能だと思います)。

  3. Apacheでサーバー側のプッシュを使用します(これは良い方法ではないと聞きました)。

  4. いくつかのコメットサポートとFBAPIを備えたJavaのようなテクノロジーを使用してください。(私はPyhtonを知りません)。

  5. HTML5はサーバー側の更新も導入しており、おそらくそれが役立つでしょう。(しかし、あまり考えていません)

行くのに最適な方法はどれですか?私はJava、PHP、およびjavascriptの経験が豊富です。

4

1 に答える 1

2

すべてのコメットは通常の HTTP ajax リクエストであり、結果がない場合はサーバーが意図的にレスポンスを遅らせ、結果があるかリクエストがタイムアウトするまでデータソースのサーバー側をポーリングし続けます。重要なイベントがかなりまばらな場合 (つまり、更新がない状態が何秒も連続して頻繁に発生する場合) は、プッシュ テクノロジの適切な近似値です。

PHP は一般的に優れた言語ではないと思いますが、PHP でコメット (ロング ポーリングとも呼ばれます) を実行することは、Python などよりもそれほど難しくないはずです。使用しない理由が他にない場合は、 PHP、それから行きます。また、Python や Javascript/Node.js などの他の言語から Facebook の API を問題なく操作できるはずです。

HTML5 には、特に Web ソケットがあります。これは、HTTP 要求とはまったく異なり、特に非常に頻繁な更新の場合、長時間のポーリング手法よりもはるかに優れた待ち時間になる可能性があります。Web ソケット データは、"プッシュ" テクノロジが意味するものに近いものです。コメットは、遅延プルによって実装された "プッシュ" の近似値にすぎません。ソケット、コメット、または通常の遅延のない ajax リクエストのどれがゲームに最適かは、ゲームの仕様とサーバー リソースに完全に依存します。

于 2012-05-04T03:03:34.903 に答える