public class WHttpTask extends HttpTask<WHttpTask>
httpClient, nextOnIO, nothrow, skipPreproc, skipSerialPreproc| 构造器和说明 |
|---|
WHttpTask(AbstractHttpClient httpClient,
String url) |
| 限定符和类型 | 方法和说明 |
|---|---|
boolean |
close(int code,
String reason) |
WHttpTask |
flexiblePing(boolean flexiblePing)
用于兼容某些强制客户端必须以固定的时间间隔发送心跳的服务器
|
WHttpTask |
heatbeat(int pingSeconds,
int pongSeconds)
设置心跳间隔
覆盖 OkHttp 原有的心跳模式,主要区别如下:
1、客户端发送的任何消息都具有一次心跳作用
2、服务器发送的任何消息都具有一次心跳作用
3、若服务器超过 3 * pongSeconds 秒没有回复心跳,才判断心跳超时
4、可指定心跳的具体内容(默认为空)
由于 OkHttp 底层并未暴露 websocket 协议里 opcode 的接口,所以该心跳的 opcode 始终是 2,并不是 websocket 协议里定义的 9
所以如果服务器要求客户端心跳的 opcode 必须是 9 的话,请使用 OkHttp 的原生心跳:
https://ok.zhxu.cn/v3/websocket.html#%E5%85%A8%E5%B1%80%E5%BF%83%E8%B7%B3%E9%85%8D%E7%BD%AE
另若需要 可使用
pingSupplier(Supplier) 方法指定心跳发送的具体内容 |
boolean |
isConnected() |
boolean |
isWebsocket() |
WebSocket |
listen()
启动 WebSocket 监听
|
int |
pingSeconds() |
Supplier<String> |
pingSupplier() |
WHttpTask |
pingSupplier(Supplier<String> pingSupplier) |
int |
pongSeconds() |
WHttpTask |
setMaxClosingSecs(int maxClosingSecs)
设置在 OnClosing 回调执行完毕后,OnClosed 回调执行的最晚延迟时间
|
WHttpTask |
setOnClosed(WebSocket.Listener<WebSocket.Close> onClosed)
已关闭监听(当连接被取消或发生异常时,也会走该回调)
|
WHttpTask |
setOnClosing(WebSocket.Listener<WebSocket.Close> onClosing)
正在关闭监听
|
WHttpTask |
setOnException(WebSocket.Listener<Throwable> onException)
连接异常监听
|
WHttpTask |
setOnMessage(WebSocket.Listener<WebSocket.Message> onMessage)
消息监听
|
WHttpTask |
setOnOpen(WebSocket.Listener<HttpResult> onOpen)
连接打开监听
|
addBodyPara, addBodyPara, addBodyPara, addFilePara, addFilePara, addFilePara, addFilePara, addFilePara, addFilePara, addFilePara, addFilePara, addFilePara, addFilePara, addHeader, addHeader, addPathPara, addPathPara, addUrlPara, addUrlPara, assertNotConflict, basicAuth, bearerAuth, bind, bodyType, boundary, boundary, cancel, charset, charset, execute, getBodyParas, getBodyType, getBound, getFileParas, getHeaders, getPathParas, getRequestBody, getTag, getUrl, getUrlParas, httpClient, isAsyncHttp, isSyncHttp, isTagged, nextOnIO, nothrow, prepareCall, prepareRequest, registeTagTask, removeTagTask, setBodyPara, setOnProcess, setRange, setRange, skipPreproc, skipSerialPreproc, stepBytes, stepRate, tag, timeoutAwait, timeoutResult, toStatepublic WHttpTask(AbstractHttpClient httpClient, String url)
public boolean isWebsocket()
isWebsocket 在类中 HttpTask<WHttpTask>public WHttpTask heatbeat(int pingSeconds, int pongSeconds)
pingSupplier(Supplier) 方法指定心跳发送的具体内容pingSeconds - 客户端心跳间隔秒数(0 表示不需要心跳)pongSeconds - 服务器心跳间隔秒数(0 表示不需要心跳)public WHttpTask flexiblePing(boolean flexiblePing)
flexiblePing - Ping 的间隔是否灵活可变(默认为 true, 为 false 时客户端 Ping 的间隔固定,普通的消息不做为 Ping)public WHttpTask pingSupplier(Supplier<String> pingSupplier)
pingSupplier - 心跳数据提供者public WebSocket listen()
public boolean close(int code,
String reason)
code - 状态码reason - 原因public boolean isConnected()
public WHttpTask setOnOpen(WebSocket.Listener<HttpResult> onOpen)
onOpen - 监听器public WHttpTask setOnException(WebSocket.Listener<Throwable> onException)
onException - 监听器public WHttpTask setOnMessage(WebSocket.Listener<WebSocket.Message> onMessage)
onMessage - 监听器public WHttpTask setOnClosing(WebSocket.Listener<WebSocket.Close> onClosing)
onClosing - 监听器public WHttpTask setOnClosed(WebSocket.Listener<WebSocket.Close> onClosed)
onClosed - 监听器public WHttpTask setMaxClosingSecs(int maxClosingSecs)
maxClosingSecs - 最大 Closing 时长(单位:秒,默认:10秒)public int pingSeconds()
public int pongSeconds()
Copyright © 2025 zhouxu. All rights reserved.