WebSocket
优质
小牛编辑
132浏览
2023-12-01
jd.sendSocketMessage(Object object)
通过 WebSocket 连接发送数据。需要先调用 jd.connectSocket() 创建 WebSocket 连接,并在 jd.onSocketOpen() 回调之后才能发送。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
data | string/ArrayBuffer | 是 | 需要发送的内容 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
let socketOpen = false
let socketMsgQueue = []
jd.connectSocket({
url: 'test.php'
})
jd.onSocketOpen(function(res) {
socketOpen = true
for (let i = 0; i < socketMsgQueue.length; i++){
sendSocketMessage(socketMsgQueue[i])
}
socketMsgQueue = []
})
function sendSocketMessage(msg) {
if (socketOpen) {
jd.sendSocketMessage({
data:msg
})
} else {
socketMsgQueue.push(msg)
}
}
jd.onSocketOpen(function callback)
监听 WebSocket 连接打开事件
参数
function callback
WebSocket 连接打开事件的回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
header | object | 连接成功的 HTTP 响应 Header |
jd.onSocketMessage(function callback)
监听 WebSocket 接收到服务器消息事件
参数
function callback
WebSocket 接收到服务器消息事件的回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
data | string/ArrayBuffer | 服务器返回的消息 |
jd.onSocketError(function callback)
监听 WebSocket 错误事件
参数
function callback
WebSocket 错误事件的回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
errMsg | string | 错误信息 |
jd.onSocketClose(function callback)
监听 WebSocket 连接关闭事件
参数
function callback
WebSocket 连接关闭事件的回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
code | number | 一个数字值表示关闭连接的状态号,表示连接被关闭的原因。 |
reason | string | 一个可读的字符串,表示连接被关闭的原因。 |
jd.connectSocket(Object object)
创建一个 WebSocket 连接
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
url | string | 是 | 开发者服务器 wss 接口地址 | |
header | Object | 否 | HTTP Header,Header 中不能设置 Referer | |
protocols | Array.<string> | 否 | 子协议数组 | |
tcpNoDelay | boolean | false | 否 | 建立 TCP 连接的时候的 TCP_NODELAY 设置 |
perMessageDeflate | boolean | false | 否 | 是否开启压缩扩展 |
timeout | number | 否 | 超时时间,单位为毫秒 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
返回值
SocketTask
WebSocket 任务
示例代码
jd.connectSocket({
url: 'wss://xxxxxxxxx.xxx',
header:{
'content-type': 'application/json'
},
protocols: ['protocol']
})
jd.closeSocket(Object object)
关闭 WebSocket 连接
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
code | number | 1000(表示正常关闭连接) | 否 | 一个数字值表示关闭连接的状态号,表示连接被关闭的原因。 |
reason | string | 否 | 一个可读的字符串,表示连接被关闭的原因。这个字符串必须是不长于 123 字节的 UTF-8 文本(不是字符)。 | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
jd.connectSocket({
url: 'test.php'
})
//如果 jd.connectSocket() 还没回调 jd.onSocketOpen(),而先调用 jd.closeSocket(),那么就无法成功关闭 WebSocket。
//必须在 WebSocket 打开期间调用 jd.closeSocket() 才能关闭。
jd.onSocketOpen(function() {
jd.closeSocket()
})
jd.onSocketClose(function(res) {
console.log('WebSocket 已关闭!')
})