我正在为 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...???