package com.openfire.manager;
import java.util.Timer;
import java.util.TimerTask;
import org.jivesoftware.smack.ConnectionListener;
import com.partynetwork.iparty.app.AppContext;
import com.partynetwork.iparty.app.bean.BLogin;
import android.util.Log;
/**
* 连接监听类
*
* @author Administrator
*
*/
public class IpartyConnectionListener implements ConnectionListener {
private Timer tExit;
private String username;
private String password;
private int logintime = 2000;
@Override
public void connectionClosed() {
Log.i("TaxiConnectionListener", "关闭连接");
// 关闭连接
XmppConnection.getInstance().closeConnection();
// 重连服务器
tExit = new Timer();
tExit.schedule(new timetask(), logintime);
}
@Override
public void connectionClosedOnError(Exception e) {
Log.i("TaxiConnectionListener", "连接关闭异常");
// 判断为账号已被登陆
boolean error = e.getMessage().equals("stream:error (conflict)");
if (!error) {
// 关闭连接
XmppConnection.getInstance().closeConnection();
// 重连服务器
tExit = new Timer();
tExit.schedule(new timetask(), logintime);
}
}
class timetask extends TimerTask {
@Override
public void run() {
AppContext context = AppContext.getInstance();
BLogin user = context.getLoginInfo();
if (user != null) {
username = context.getLoginUid()+"";
password = user.getPwd();
}
if (username != null && password != null) {
Log.i("TaxiConnectionListener", "尝试登陆");
// 连接服务器
if (XmppConnection.getInstance().login(username, password)) {
Log.i("TaxiConnectionListener", "登陆成功");
} else {
Log.i("TaxiConnectionListener", "重新登陆");
tExit.schedule(new timetask(), logintime);
}
}
}
}
@Override
public void reconnectingIn(int arg0) {
}
@Override
public void reconnectionFailed(Exception arg0) {
}
@Override
public void reconnectionSuccessful() {
}
}