2011-07-06 11 views
0

私たちは現在、Facebook用の小規模のインディーズカードゲームに取り組んでいます。これは、何十万人ものプレイヤーに(最終的に)届くことを願っています。Facebookのフラッシュゲームのクライアントとサーバーの通信

私たちは問題の大部分(スケーラビリティ、サーバー側のアーキテクチャなど)を把握していますが、1つの質問 - クライアント&の間の通信です。

私たちは、次の要件があります

  • サーバー側プッシュメッセージ(なしクライアント・メッセージ・リクエスト)
  • 高いスケーラビリティ(最初の数百人で支えるとのCCUの後にうまくいけば、数千必要があります)
  • セキュアで信頼性の高いをほとんどのコンピュータ、ルータ&ブラウザ
  • のAdobe Flash/AS3
  • と連携して層
  • 作業も

最初に気になったのはソケット接続でしたが、私たちのニーズに答える優れたソリューションはありますか?

ありがとうございます!

答えて

1

ソケット接続はほとんど不可避です(transport layers参照)。

TCPを使用することをお勧めします。配信(高い信頼性)を保証し、「接続」を指向します。欠点がいくつかありますが、ほとんどのコンピュータ、ルータ、ブラウザでは他の選択肢はありません。

もっと重要な質問は、TCP経由で何を送信するのですか?一般的に、Flashやサーバーで使用できるものを使用することをお勧めします(たとえばRemote Procedure Callを参照)。

「プッシュ」メッセージは、通常、同期要求を処理するように設計されているため、HTTP接続にのみ問題があります。ただし、Flashではこの制限はありません。

セキュリティは、TCP接続を「ラッピング」することで追加できます。SSLまたはTLSを使用します。

  • XMLシリアル化(XML-RPC):開発と保守が容易で、中程度のパフォーマンス、おそらく信頼できる。
  • RTMP(Real Time Messaging Protocol):Flashにネイティブで、優れたパフォーマンス、リアルタイムゲームに最適で、HTTP経由でトンネリングできます(ファイアウォール/ルータを超える)。

NetConnectionクラスおよびAction Message Formatを参照してください。

Adob​​e Integrated RuntimeとAdobe Flash Playerは、アプリケーションとリモートサーバー間の通信にAMFを使用します。 AMFは、リモートプロシージャコール(RPC)をHTTP/HTTPSまたはRTMP/RTMPSプロトコル経由で転送できるコンパクトバイナリ形式にエンコードします。オブジェクトとデータの値はこのバイナリ形式にシリアル化され、パフォーマンスが向上し、アプリケーションはXMLやSOAPなどのテキストベースの形式よりも最大10倍高速にデータをロードできます。

http://www.pyamf.org/から)

1

私たちは、サーバー側とクライアント側のcomunicatingため、当社のフラッシュゲームでWebORBを使用しますが、私はそれがあなたの要件のために十分であるか分かりません。

ご迷惑をおかけして申し訳ありません。

+0

WebORBはAMFを使用しています。 – Pindatjuh

関連する問題