1

XMPPの素晴らしさを発見したばかりで、XMPPコンポーネント(XEP-0114)としてマルチプレイヤーゲームを開発する実験を行っています。

ただし、コンポーネントの存在を示すのに問題があります。コンポーネントが<presence>スタンザ自体に応答する必要があるというのは本当ですか?

確かにそれは可能ですが、メンテナンスのためにダウンしている場合はできません。また、コンポーネントはバックアップ時に誰に通知しますか?もちろん、関心のあるすべてのユーザーをデータベースに登録することもできますが、5分間停止すると、そのリストは確実に変更されます。以前は興味がなかったユーザーが今は興味を持っており、興味を持っていたユーザーはもう興味がありません。

また、クラッシュした場合(発生する可能性があります)、「使用不可」のプレゼンス表示を送信できません。

これはどういうわけかサーバーにオフロードできませんか?

4

1 に答える 1

0
  1. コンポーネントが を受け取る<presence type='probe'/>と、コンポーネントの現在の存在を返信する必要があります。

  2. コンポーネントが を受け取る<presence type='subscribe'/>と、fromアドレスをある種のストレージ メカニズムに保存し、 で応答する必要があり<presence type='subscribed'/>ます。

  3. コンポーネントがオンラインになると、ステップ 2 で保存した各サブスクライバーにプレゼンスを送信する必要があります。

コンポーネントから送信されるすべてのスタンザには、常にtoアドレスとアドレスの両方を入れるようにしてください。fromクライアントの記述に慣れている場合は、ステップ 3 でそれを忘れている可能性があります。

于 2012-12-27T07:19:33.363 に答える