私たちはオンラインのリアルタイム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のサブドメインベースのチャネルは設定が少し厄介なようですが、これ以上の代替手段はまだ見つかりません。