Android と iPhone の両方で XMPP クライアントを使用しています。サーバーに接続してメッセージを取得することもできました。
しかし、クライアントは数分後に XMPP サーバーとの接続を切断しています。IOS XMPP フレームワークは、クライアントがサーバーに接続されているかどうかを示すデリゲート メソッドで構成されています。接続が切断されていない場合は、デリゲート メソッドを使用して再接続できます。Android クライアント (私は aSmack ライブラリを使用しています) で次のコードを使用して、接続が存在するかどうかを確認しました。しかし、これは機能していないようです。
public void recieveMessage()
{
Log.e("xmppclient","will receive messages");
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
connection.addPacketListener(new PacketListener() {
public void processPacket(Packet packet) {
if(connection != null && connection.isConnected())
{
Message message = (Message) packet;
if (message.getBody() != null)
{
fromName = StringUtils.parseBareAddress(message.getFrom());
String messageBody=message.getBody();
Log.e("Message", messageBody );
Intent i = new Intent(NEW_MESSAGE);
i.putExtra("username", StringUtils.parseBareAddress(message.getFrom()));
i.putExtra("message", message.getBody());
sendBroadcast(i);
}
else
{
connectToXmpp();
}
}
}
}
,filter);
}
connectToXMPP() は、新しい接続を開くメソッドです。
接続を確認して、接続が切れたらすぐに XMPP に再接続する方法はありますか??