# Web Socket

# qq.sendSocketMessage

# qq.sendSocketMessage(Object object)

通过 WebSocket 连接发送数据。需要先 qq.connectSocket,并在 qq.onSocketOpen 回调之后才能发送。

# 参数

# Object object
属性 类型 默认值 必填 说明
data string/ArrayBuffer 需要发送的内容
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

# 示例代码

const socketOpen = false
const socketMsgQueue = []
qq.connectSocket({
  url: 'test.php'
})

qq.onSocketOpen(function (res) {
  socketOpen = true
  for (let i = 0; i < socketMsgQueue.length; i++) {
    sendSocketMessage(socketMsgQueue[i])
  }
  socketMsgQueue = []
})

function sendSocketMessage(msg) {
  if (socketOpen) {
    qq.sendSocketMessage({
      data: msg
    })
  } else {
    socketMsgQueue.push(msg)
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# qq.onSocketOpen

# qq.onSocketOpen(function callback)

监听 WebSocket 连接打开事件

# 参数

# function callback

WebSocket 连接打开事件的回调函数

# 参数

Object res

属性 类型 说明 最低版本
header object 连接成功的 HTTP 响应 Header

# qq.onSocketMessage

# qq.onSocketMessage(function callback)

监听 WebSocket 接受到服务器的消息事件

# 参数

# function callback

WebSocket 接受到服务器的消息事件的回调函数

# 参数

Object res

属性 类型 说明
data string/ArrayBuffer 服务器返回的消息

# qq.onSocketError

# qq.onSocketError(function callback)

监听 WebSocket 错误事件

# 参数

# function callback

WebSocket 错误事件的回调函数

# qq.onSocketClose

# qq.onSocketClose(function callback)

监听 WebSocket 连接关闭事件

# 参数

# function callback

WebSocket 连接关闭事件的回调函数

# qq.connectSocket

# SocketTask qq.connectSocket(Object object)

创建一个 WebSocket 连接。使用前请注意阅读相关说明

# 参数

# Object object
属性 类型 默认值 必填 说明 最低版本
url string 开发者服务器 wss 接口地址
header Object HTTP Header,Header 中不能设置 Referer
protocols Array.<string> 子协议数组
tcpNoDelay boolean false 建立 TCP 连接的时候的 TCP_NODELAY 设置
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

# 返回值

# SocketTask

WebSocket 任务

# 并发数

  • 最多可以同时存在 5 个 WebSocket 连接。

# 示例代码

qq.connectSocket({
  url: 'wss://example.qq.com',
  header: {
    'content-type': 'application/json'
  },
  protocols: ['protocol1'],
  method: 'GET'
})
1
2
3
4
5
6
7
8

# qq.closeSocket

# qq.closeSocket(Object object)

关闭 WebSocket 连接

# 参数

# Object object
属性 类型 默认值 必填 说明
code number 1000(表示正常关闭连接) 一个数字值表示关闭连接的状态号,表示连接被关闭的原因。
reason string 一个可读的字符串,表示连接被关闭的原因。这个字符串必须是不长于 123 字节的 UTF-8 文本(不是字符)。
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

# 示例代码

qq.connectSocket({
  url: 'test.php'
})

// 注意这里有时序问题,
// 如果 qq.connectSocket 还没回调 qq.onSocketOpen,而先调用 qq.closeSocket,那么就做不到关闭 WebSocket 的目的。
// 必须在 WebSocket 打开期间调用 qq.closeSocket 才能关闭。
qq.onSocketOpen(function () {
  qq.closeSocket()
})

qq.onSocketClose(function (res) {
  console.log('WebSocket 已关闭!')
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# SocketTask

WebSocket 任务,可通过 qq.connectSocket() 接口创建返回

# 方法

# SocketTask.send(Object object)

通过 WebSocket 连接发送数据

# SocketTask.close(Object object)

关闭 WebSocket 连接

# SocketTask.onOpen(function callback)

监听 WebSocket 连接打开事件

# SocketTask.onClose(function callback)

监听 WebSocket 连接关闭事件

# SocketTask.onError(function callback)

监听 WebSocket 错误事件

# SocketTask.onMessage(function callback)

监听 WebSocket 接受到服务器的消息事件

# .close

# SocketTask.close(Object object)

关闭 WebSocket 连接

# 参数

# Object object
属性 类型 默认值 必填 说明
code number 1000(表示正常关闭连接) 一个数字值表示关闭连接的状态号,表示连接被关闭的原因。
reason string 一个可读的字符串,表示连接被关闭的原因。这个字符串必须是不长于 123 字节的 UTF-8 文本(不是字符)。
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

# .onClose

# SocketTask.onClose(function callback)

监听 WebSocket 连接关闭事件

# 参数

# function callback

WebSocket 连接关闭事件的回调函数

# .onError

# SocketTask.onError(function callback)

监听 WebSocket 错误事件

# 参数

# function callback

WebSocket 错误事件的回调函数

# 参数

Object res

属性 类型 说明
errMsg string 错误信息

# .onMessage

# SocketTask.onMessage(function callback)

监听 WebSocket 接受到服务器的消息事件

# 参数

# function callback

WebSocket 接受到服务器的消息事件的回调函数

# 参数

Object res

属性 类型 说明
data string/ArrayBuffer 服务器返回的消息

# .onOpen

# SocketTask.onOpen(function callback)

监听 WebSocket 连接打开事件

# 参数

# function callback

WebSocket 连接打开事件的回调函数

# 参数

Object res

属性 类型 说明 最低版本
header object 连接成功的 HTTP 响应 Header

# .send

# SocketTask.send(Object object)

通过 WebSocket 连接发送数据

# 参数

# Object object
属性 类型 默认值 必填 说明
data string/ArrayBuffer 需要发送的内容
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)