2

どのように扱われているのかわからないので、質問したかったのです。

新世代の MMORPG ゲームは、トレーディング ポスト (オークション) システムを Web サーバー上で橋渡ししようとしているため、プレーヤーは携帯電話からでも問題なく使用できます。

最後の例は Guild Wars 2 です。基本的に、システムは次のように機能します。

1. You login a locally running client.
2. Open up the auction house in game client. (like HTML frames in this case) 
3. The auction house connects to a webserver instead of sending packets to actual game server, like auctionhouse.guildwars2.com, which is also accessable via browser.
4. You want to sell your Sword, if the auction house successfully takes the Sword, it gets deleted from user inventory (client) and server, hence, client somehow gets informed by webserver reply.

だから... 私は推測しています... ローカルで実行されているクライアント (C++ アプリケーション) は、アイテムが販売されたか、何かが失敗したかをどのように認識しますか? Web サーバーは検証のために XML/JSON 出力を返しますか?

同様に、webserver はこれを返します。

// XML reply 
<auctionResponse>
   <itemId>184818478A</itemId>
   <success>Successful</success>
   <verifyKey>AG8918ADHWDHA</verifyKey>
</auctionResponse>

クライアントはそれを次のようにチェックします。

if(auctionHouse.auctionResponse == 'Successful')
{
     if(auctionHouse.auctionResponse == getVerifyKeyFromServer()) //so the server confirms
     {
           DeleteFromInventory(auctionHouse.itemId); //item will be removed from user inventory
     }
}

GW2のオークションハウスの開発者に聞いてみたのですが、情報を共有できないとのことでした。

では、基本的にはどのように機能するのでしょうか。Web サーバーによる JSON/XML 出力またはデータを運ぶためのまったく別のものですか?

どんな助けでも大歓迎です。

Ps。これは TCP 接続ではありません。オークション ハウス自体はポート 80 で実行され、バックエンドは PHP などの言語でコーディングされています。

4

1 に答える 1

0

彼らが具体的にどのようにそれを行っているかはわかりませんが、私は定期的に同様のアプリケーションを作成しています。一般的な仕組みは次のとおりです。

PHP は proc_open() を使用して、実行中のプロセスにパイプできます。これは、PHP 内から別のアプリケーションにコマンドを送信し、その結果を PHP スクリプト内で使用できることを意味します。これには、任意に記述されたカスタム exe が含まれていました。

もう 1 つのオプションは、localhost または PHP が CURL を使用してそのサーバーと通信するその他のマシンで実行されるサーバー アプリケーションです。結果は、JSON、XML、プレーンテキストなどで送信できます...

どちらのオプションでも、PHP Web サーバーをポート 80 で実行できます。

編集:

ダウンロードしたクライアント アプリがサーバー (おそらく Web アプリと同じデータベースを共有するサーバー) と通信していると思われます。したがって、クライアントで何かを購入すると、サーバー上の DB が更新され、Web アプリには更新された情報が含まれます。

于 2012-09-08T04:26:51.840 に答える