Android WebSocket ping pong机制
1、使用的库版本:org.java-websocket:Java-WebSocket:1.5.2
2、WebSocket 中,有时候需要保持连接,会采用发送心跳或者发送ping回应pong
博主项目中用的是第二种,Android 项目中作为客户端,服务端会发送ping,要求收到ping后发送pong给服务端。其实框架内部是自动处理了的。具体可看WebSocketAdapter.java中代码,下面贴出关键代码
@Override
public void onWebsocketPing(WebSocket conn, Framedata f) {
conn.sendFrame(new PongFrame((PingFrame) f));//这里自动帮我们处理了
}
/**
* This default implementation does not do anything. Go ahead and overwrite it.
*
* @see org.java_websocket.WebSocketListener#onWebsocketPong(WebSocket, Framedata)
*/
@Override
public void onWebsocketPong(WebSocket conn, Framedata f) {
//To overwrite
}
如果收到ping后需要自定义发送发送pong消息回应怎么办?创建WebSocketClient时,重写
onWebsocketPing函数即可,里面编辑发送自己想要发送的消息