2

私たちはオンラインのリアルタイムWebブラウザゲームを開発しており、APEサーバーを使用することを選択しました。以前のプロジェクトのゲーム内チャットシステムがあり、それをAPEに移植したいと思います。私たちはAPEに少し慣れていないので、どちらのシナリオがうまく機能するか、あるいはまったく機能しないかについてはわかりません。

現在、チャットは次のように機能します。-チャットには4つの部屋があり、ユーザーがページを完全にリロードすると、ユーザーが特定のゲームの側面(トレード、ファイトなど)について話し、db(データベース)から最新の30メッセージを取得します。開いたチャットルーム-チャットは定期的にAJAX要求を発行して、いずれかのチャットルームに新しいメッセージがあるかどうかを確認しますが、実際の最新のメッセージは、現在開いているチャットルームに対してのみダウンロードされます。さらに複雑にするために、チャットを別々の言語に分割しました。ユーザーは、設定Cookieにある言語のメッセージのみを受け取ります。彼らはいつでもそれを変更することができ、それから彼らは他の言語のメッセージを受け取るでしょう。

ページをまったくリロードせずに完全にAJAXベースのシステムに移行しているため、dbから最新の30メッセージを取得するためのリクエストを自動的に最小化します。

しかし、難しいのは、メッセージをdbに保存し、APEを介してユーザーに送信する方法を整理する方法です。

次のオプションを検討しました。-ユーザーがメッセージをPHPスクリプトに送信し、dbに送信してから、PHPがinlinepushを介してメッセージをAPEに送信します(ドキュメントによると、inlinepushは1つのチャネルのみをサポートしているため、どのように機能するかはわかりません。次に)そして、APEはすべてのユーザーにメッセージを送信します(APEサーバーにユーザーの優先言語も保存する必要があるようです。そのため、メッセージは適切なユーザーにのみ送信されます)。-ユーザーはメッセージをAPEサーバーに送信し、APEサーバーはそれを同じ言語の他のユーザーに配信し、PHPスクリプトを呼び出してメッセージをdbに保存します。-ユーザーはメッセージをAPEサーバーに送信し、APEサーバーはそれを同じ言語の他のユーザーに配信し、APE独自のMysql機能を使用してメッセージをdbに保存します。

一方で、PHPを介してデータを保存することを好みます。これは、非常に堅牢なdbアクセスライブラリがあり、チャットメッセージを保存するためだけにAPEとJavascriptに移植することを避けたいためです(サーバー側のJSの経験もありません)。 )。しかし、それがいくつかの良い利点をもたらすのであれば、もちろん、APE独自のMysqlを使用します。

また、APEはすべてのユーザーを言語でフィルタリングし、適切なユーザーにのみメッセージを送信できるのでしょうか。APEはCookieをどのように処理していますか?

また、APEのサブドメインベースのチャネルは設定が少し厄介なようですが、これ以上の代替手段はまだ見つかりません。

4

2 に答える 2

0

このリンクを確認してください:

http://www.ape-project.org

AJAX PUSH ENGINE コンセプトを実装するオープンソース プロジェクトのようです。

彼らはあなたにコードを提供しました(サーバー側とクライアント側)。私が実際に調べているのはWindowsをサポートしていないようですが、必要に応じて役立つかもしれません。

回答は、質問を投稿した実際の人にとっては役に立たないように見えますが、それは長い時間です。

于 2012-09-03T06:23:28.560 に答える
0

カスタム認証で node.js と Faye を使用することになり、問題なく動作しました。Faye は非常に軽量でカスタマイズ可能で、複雑なドメイン設定の手間がかかりません。また、PHP を使用して独自の SQL バックエンドをコーディングするのも比較的簡単でした。

フェイ

于 2012-09-03T08:34:52.403 に答える