我是苍王,以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章。 [Android]如何做一个崩溃率少于千分之三噶应用app--章节列表
这一张非常经典的心跳策略图示
现在一般的心跳策略,都是从客户端发送一个ping信号给服务器,告诉服务器是长连接存活。 服务器会返回一个pong信号给客户端,让其更新心跳线程时间。如果超时没有接收到信号,那么客户端考虑重连机制。
这里说一下okhttp有提供了WebSocket的封装,我们的应用也是使用了WebSocket,那就直接看一下WebSocket对pingpong的封装
public Builder() {
……
//这里默认的ping的时间间隔为0,因为okhttp也可以有如http短连接
pingInterval = 0;
}
Builder(OkHttpClient okHttpClient) {
……
//builder函数提供封装
this.pingInterval = okHttpClient.pingInterval;
}
//设置间隔
public Builder pingInterval(long interval, TimeUnit unit) {
pingInterval = checkDuration("interval", interval, unit);
return this;
}
复制代码
在RealWebSocket中启动循环发送ping信号
public void initReaderAndWriter(String name, Streams streams) throws IOException {
synchronized (this) {
this.streams = streams;
this.writer = new WebSocketWriter