WebSocket
qh.connectSocket
解释:创建一个 WebSocket 连接。
方法参数:Object object
object
参数说明:
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
url | String | 是 | - | 开发者服务器接口地址,必须是 wss 协议,且域名必须是后台配置的合法域名。 |
protocols | StringArray | 否 | - | 子协议数组 |
success | Function | 否 | - | 接口调用成功的回调函数 |
fail | Function | 否 | - | 接口调用失败的回调函数 |
complete | Function | 否 | - | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例:
- 在 html 文件中
<div>
<se-button type="primary" @click="connectSocket">connectSocket</se-button>
</div>
- 在 js 文件中
Page({
methods: {
connectSocket() {
qh.connectSocket({
url: 'ws://127.0.0.1:3000',
success: function (res) {
console.log('connectSocket success', res);
},
fail: function (err) {
console.log('connectSocket fail', err);
}
});
}
}
});
qh.onSocketOpen
解释:监听 WebSocket 连接打开事件。
方法参数:Function callback
callback
参数说明:WebSocket 连接打开事件的回调函数。
callback
方法参数:Object res
res
参数说明:
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
header | Object | 是 | - | 连接成功的 HTTP 响应 Header。 |
示例:
- 在 html 文件中
<div>
<se-button type="primary" @click="onSocketOpen">onSocketOpen</se-button>
</div>
- 在 js 文件中
Page({
methods: {
onSocketOpen() {
qh.onSocketOpen(function (res) {
console.log('WebSocket连接已打开!', res);
});
qh.connectSocket({
url: 'ws://127.0.0.1:3000',
success: function (res) {
console.log('connectSocket success', res);
},
fail: function (err) {
console.log('connectSocket fail', err);
}
});
}
}
});
qh.onSocketError
解释:监听 WebSocket 错误
方法参数:Function callback
示例:
- 在 html 文件中
<div>
<se-button type="primary" @click="onSocketError">onSocketError</se-button>
</div>
- 在 js 文件中
Page({
methods: {
onSocketError() {
qh.onSocketError(function (res) {
console.log('WebSocket连接打开失败,请检查!', res);
});
qh.connectSocket({
url: 'ws://127.0.0.1:3000',
success: function (res) {
console.log('connectSocket success', res);
},
fail: function (err) {
console.log('connectSocket fail', err);
}
});
}
}
});
qh.sendSocketMessage
解释:通过 WebSocket 连接发送数据,需要先调用 qh.connectSocket,并在 qh.onSocketOpen 回调之后才能发送。
方法参数:Object object
object
参数说明:
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
data | String/ArrayBuffer | 是 | - | 需要发送的内容 |
success | Function | 否 | - | 接口调用成功的回调函数 |
fail | Function | 否 | - | 接口调用失败的回调函数 |
complete | Function | 否 | - | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例:
- 在 html 文件中
<div>
<se-button type="primary" @click="sendSocketMessage">sendSocketMessage</se-button>
</div>
- 在 js 文件中
Page({
methods: {
sendSocketMessage() {
qh.onSocketOpen(function () {
qh.sendSocketMessage({
data: 'qh360',
success: function (res) {
console.log('WebSocket发送数据成功', res);
},
fail: function (err) {
console.log('WebSocket发送数据失败', err);
}
});
});
qh.connectSocket({
url: 'ws://127.0.0.1:3000',
success: function (res) {
console.log('connectSocket success', res);
},
fail: function (err) {
console.log('connectSocket fail', err);
}
});
}
}
});
qh.onSocketMessage
解释:监听 WebSocket 接受到服务器的消息事件
方法参数:Function callback
callback
参数说明:WebSocket 接受到服务器的消息事件的回调函数
callback
方法参数:Object res
res
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
data | String/ArrayBuffer/Blob | 服务器返回的消息 |
示例:
- 在 html 文件中
<div>
<se-button type="primary" @click="onSocketMessage">onSocketMessage</se-button>
</div>
- 在 js 文件中
Page({
methods: {
onSocketMessage() {
qh.onSocketOpen(function () {
qh.sendSocketMessage({
data: 'qh360'
});
});
qh.onSocketMessage(function (res) {
console.log('收到服务器内容:', res.data);
});
qh.connectSocket({
url: 'ws://127.0.0.1:3000',
success: function (res) {
console.log('connectSocket success', res);
},
fail: function (err) {
console.log('connectSocket fail', err);
}
});
}
}
});
qh.closeSocket
解释:关闭 WebSocket 连接。 必须在 WebSocket 打开期间调用 qh.closeSocket 才能关闭。
方法参数:Object object
object
参数说明:
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
code | Number | 否 | 1000 | 一个数字值表示关闭连接的状态号,表示连接被关闭的原因。如果这个参数没有被指定,默认的取值是1000 (表示正常连接关闭) |
reason | String | 否 | - | 一个可读的字符串,表示连接被关闭的原因。这个字符串必须是不长于123字节的 UTF-8 文本(不是字符) |
success | Function | 否 | - | 接口调用成功的回调函数 |
fail | Function | 否 | - | 接口调用失败的回调函数 |
complete | Function | 否 | - | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例:
- 在 html 文件中
<div>
<se-button type="primary" @click="closeSocket">closeSocket</se-button>
</div>
- 在 js 文件中
Page({
methods: {
closeSocket() {
qh.onSocketOpen(function () {
qh.closeSocket({
code: 1000,
reason: 'close reason',
success: function (res) {
console.log('WebSocket链接关闭成功', res);
},
fail: function (err) {
console.log('WebSocket链接关闭失败', err);
}
});
});
qh.connectSocket({
url: 'ws://127.0.0.1:3000',
success: function (res) {
console.log('connectSocket success', res);
},
fail: function (err) {
console.log('connectSocket fail', err);
}
});
}
}
});
qh.onSocketClose
解释:监听 WebSocket 关闭。
方法参数:Function callback
示例:
- 在 html 文件中
<div>
<se-button type="primary" @click="onSocketClose">onSocketClose</se-button>
</div>
- 在 js 文件中
Page({
methods: {
onSocketClose() {
qh.onSocketOpen(function () {
qh.closeSocket();
});
qh.onSocketClose(function (res) {
console.log('WebSocket 已关闭!');
})
qh.connectSocket({
url: 'ws://127.0.0.1:3000',
success: function (res) {
console.log('connectSocket success', res);
},
fail: function (err) {
console.log('connectSocket fail', err);
}
});
}
}
});
SocketTask
解释:WebSocket 任务,可通过 qh.connectSocket() 接口创建返回。 示例:
- 在 html 文件中
<div>
<se-button type="primary" @click="send">send</se-button>
<se-button type="primary" @click="close">close</se-button>
</div>
- 在 js 文件中
Page({
onLoad() {
const ws = qh.connectSocket({
url: 'ws://127.0.0.1:3000'
});
ws.onOpen(function (res) {
console.log('WebSocket连接已打开!', res);
});
ws.onError(function (err) {
console.log('WebSocket连接错误!', err);
});
ws.onMessage(function (res) {
console.log('WebSocket接受到服务器的消息', res);
});
ws.onClose(function (res) {
console.log('WebSocket连接已关闭!', res);
});
this.ws = ws;
},
methods: {
send() {
this.ws.send({
data: 'qh360',
success: function (res) {
console.log('WebSocket发送数据成功', res);
},
fail: function (err) {
console.log('WebSocket发送数据失败', err);
}
});
},
close() {
this.ws.close({
code: 1000,
reason: 'close reason',
success: function (res) {
console.log('WebSocket链接关闭成功', res);
},
fail: function (err) {
console.log('WebSocket链接关闭失败', err);
}
});
}
}
});
SocketTask.send
解释:通过 WebSocket 连接发送数据。
方法参数:Object object
object
参数说明:
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
data | String/ArrayBuffer | 是 | - | 需要发送的内容 |
success | Function | 否 | - | 接口调用成功的回调函数 |
fail | Function | 否 | - | 接口调用失败的回调函数 |
complete | Function | 否 | - | 接口调用结束的回调函数(调用成功、失败都会执行) |
SocketTask.close
解释:关闭 WebSocket 连接
方法参数:Object object
object
参数说明:
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
code | Number | 否 | 1000 (表示正常连接关闭) | 一个数字值表示关闭连接的状态号,表示连接被关闭的原因。如果这个参数没有被指定。 |
reason | String | 否 | - | 一个可读的字符串,表示连接被关闭的原因。这个字符串必须是不长于123字节的 UTF-8 文本(不是字符) |
success | Function | 否 | - | 接口调用成功的回调函数 |
fail | Function | 否 | - | 接口调用失败的回调函数 |
complete | Function | 否 | - | 接口调用结束的回调函数(调用成功、失败都会执行) |
SocketTask.onOpen
解释:监听 WebSocket 连接打开事件。
方法参数:Function callback
SocketTask.onClose
解释:监听 WebSocket 连接关闭事件。
方法参数:Function callback
SocketTask.onError
解释:监听 WebSocket 错误。
方法参数:Function callback
SocketTask.onMessage
解释:监听 WebSocket 接受到服务器的消息事件。
方法参数:Function callback
callback
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
data | String/ArrayBuffer/Blob | 服务器返回的消息 |
可以通过设置SocketTask.socket.binaryType = 'blob' 或 'arraybuffer' 来显式指定收到的二进制数据类型。