AbstractComponentクラスを拡張することにより、Whackライブラリに基づいて外部のopenfireコンポーネントを構築しました。クライアントが自分のコンポーネントをサブスクライブし、コンポーネントがオンラインおよびオフラインになったときにプレゼンス通知を受信するようにしたい。だから私の質問は、AbstractComponentに基づいて外部コンポーネントのプレゼンスとプレゼンスサブスクリプションをどのように処理できるかということです。
現在、handlePresence()メソッドを使用してプレゼンス要求に応答できますが、クライアントをコンポーネント名簿に追加するにはどうすればよいですか(外部コンポーネントはそもそも名簿を許可しますか)?
@Override
protected void handlePresence(Presence presence){
if (presence.getType() == Presence.Type.subscribe){
System.out.println("The component has received Subscribtion request.");
Presence original = presence;
Presence response = new Presence();
//Swap the sender/recipient fields
response.setTo(original.getFrom());
response.setFrom(original.getTo());
//Convert the text to upper case
response.setType(Presence.Type.subscribed);
send(response);
}
}