# WebSocket-微信小程序
需要注意,使用此能力需要小程序基础库版本最低为
2.21.1
# 能力使用
在小程序中使用如下的代码:
const { socketTask } = await wx.cloud.connectContainer({
config: {
env: 'wxrun-demo', // 替换自己的微信云托管的环境ID
},
service: 'ws', // 替换自己的服务名
path: '/' // 不填默认根目录
})
# 请求参数
wx.cloud.connectContainer
参数:
属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|---|
config.env | string | 是 | 云环境 ID | 2.21.1 | |
service | string | 是 | 服务名 | 2.21.1 | |
path | string | 是 | 开发者服务器接口地址 | 2.21.1 | |
success | function | - | 否 | 接口调用成功的回调函数 | 2.21.1 |
fail | function | - | 否 | 接口调用失败的回调函数 | 2.21.1 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | 2.21.1 |
如果希望 wx.cloud.container 返回 Promise,请勿传 success, fail 和 complete
# 返回值
connectContainer
Promise resolve 的结果 / success 回调的结果是如下对象,包含用于收发消息和管理链接的 socketTask
属性:
属性 | 类型 | 说明 | 最低版本 |
---|---|---|---|
socketTask | SocketTask | socket 对象,和 wx.connectSocket 返回值一样 |
# 代码示例
在小程序 app.js
文件中替换如下代码:
App({
onLaunch: async function () {
wx.cloud.init({
traceUser: true
})
const { socketTask } = await wx.cloud.connectContainer({
config: {
env: 'wxrun-demo', // 微信云托管的环境ID
},
service: 'ws', // 服务名
path: '/' // 不填默认根目录
})
socketTask.onMessage(function (res) {
console.log('【WEBSOCKET】', res.data)
})
socketTask.onOpen(function (res) {
console.log('【WEBSOCKET】', '链接成功!')
socketTask.send({
data: '这是小程序消息'
})
})
socketTask.onClose(function (res) {
console.log('【WEBSOCKET】链接关闭!')
})
}
})