什么是心跳包
为什么要发心跳包
新建KeepAlive
//心跳包
public class KeepAlive extends Thread {
boolean isRunning = true;
public KeepAlive() {
this.start();
}
@Override
public void run() {
while (isRunning){
try {
//当前时间-最后一次说话时间>100
sleep(100000);
Controller.handleMessage(Controller.MSG_SEND,"");
Log.d("心跳包",System.currentTimeMillis()+"发送了心跳包");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
SocketConnection
//长连接
public class SocketConnection extends Thread {
......
KeepAlive keepAlive;
public void close() {
try {//给服务器发消息,告诉服务器客户端退出
......
keepAlive.isRunning = false;
......
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private SocketConnection() {
this.start();
}
......
@Override
public void run() {
try {
......
keepAlive = new KeepAlive();
......
} catch (IOException e) {
e.printStackTrace();
}
}
}