-1

こんにちは、私はクライアントからサーバーへのリアルタイム通信を必要とするモバイルゲームに取り組んでいます。

通常、TCPソケットサーバーを実装し、プライベートバイナリプロトコルを使用して双方向通信を有効にします。次に、標準に基づくEjabberdのようなXMPPサーバーも調べます。しかし、XMLはある意味で冗長で非効率的であり、特にモバイルアプリの場合、トラフィックとメモリの消費量が増える可能性があります。

  1. XMPPがXMLを使用することは必須ですか?
  2. XMLを使用する代わりに低レベルのデータ形式としてバイナリを使用するXMPP実装はありますか?(または、XMPPを選択して、他の標準またはテクノロジから開始するべきではありません。)
  3. XMPPを使用して複雑なデータオブジェクト(大きなファイルオブジェクトではない)を送信するオーバーヘッドを削減するための戦略はありますか?
4

1 に答える 1

2

XMPP仕様ではXMLが必要であるため、バイナリ実装はありません。実際にははるかに多くのオーバーヘッドが含まれていますが、XMPPが解決するように設計されている問題を覚えておく必要があります。アクティブなチャット接続では、1秒に1つのメッセージが送信される可能性があります。

GoogleトークAPIに関しては、クライアントに非xmlプロトコルを使用します-Googleサーバー接続。Gmailクライアントでメッセージを送信すると、リクエストの本文には大量の投稿データが含まれています。

count=1&ofs=16&req0_type=m&req0_to=my.friend%40gmail.com&req0_id=6A8466CBC59CBB0C_0&req0_text=test&req0_chatstate=active&req0_iconset=classic&req0__sc=c

その部分はXMPPではありません。次に、この要求を受け入れるサーバーは、XMPP要求を作成して送信するジョブを実行します。XMPPはまだXMLであり、クライアントとGoogleサーバー間で異なるプロトコルを使用するだけです。

于 2013-03-01T19:47:24.040 に答える