1

libstropheライブラリを使用して単純なJabberクライアントを作成しようとしています。

明確にする必要がある1つのことを除いて、これまでのところかなり順調に進んでいます。

つまり、プログラムのユーザーに表示できるように、連絡先のステータス(つまり、オンライン/オフライン)を(継続的に)知るにはどうすればよいですか?同様に、ユーザーの名簿をどのように要求する必要がありますか?

libstropheによって提供された例を見てきましたがroster.c、それは名簿を1回だけ印刷します。実際のアプリケーションでは、ユーザーがアプリケーションに追加した新しい連絡先などを表示するために、これを継続的に要求/更新する必要があります。

したがって、基本的に、ユーザーの連絡先リストに常に最新の名簿とユーザーの最新のステータスを表示する方法がわかりません。

たとえば、事前定義された時間間隔で名簿を要求することになっていますか?

4

1 に答える 1

2

名簿とプレゼンスは2つの異なるトピックです。

あなたがログインするとき、あなたは通常あなたがすでにしている名簿を要求します。セッション中に連絡先リストが変更されると、更新された連絡先で名簿がプッシュされます。これはスタンザです。ログインしている別のクライアントがクライアントの名簿を操作したかどうかは関係ありません。

購読しているすべての連絡先の存在と呼ばれるオンライン状態には、スタンザが含まれます。

xmpp_handler_addを使用してハンドラーを設定する必要があります

  1. オンライン状態、プレゼンススタンザ
  2. 名前空間jabber:iq:rosterのクエリを使用した名簿プッシュ、IQスタンザ
于 2012-07-04T12:20:54.470 に答える