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