# WebSocket-公众号H5
需要注意,使用此能力需要WEB-SDK版本最低为
3.4.0
# 能力使用
在小程序中使用如下的代码:
// 初始化 Cloud 实例
var c1 = new wx.cloud.Cloud({
identityless: true, // 如果你是普通WEB网页开发,设置为true,如果是公众号开发,则去掉
resourceAppid: "小程序或公众号appid", // 微信云托管所在的「小程序/公众号」appid
resourceEnv: "微信云托管ID", // 微信云托管环境ID,不能为空
});
await c1.init();
const res = await c1.connectContainer({
path: '/xxx', // 填入业务自定义路径和参数,根目录,就是 /
header: {
'X-WX-SERVICE': 'xxx', // xxx中填入服务名称(微信云托管 - 服务管理 - 服务列表 - 服务名称)
}
// 其余参数同 wx.connectSocket
});
# 请求参数
cloud.connectContainer
参数:
属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|---|
header.'X-WX-SERVICE' | string | 是 | 服务名 | 3.4 | |
path | string | 是 | 开发者服务器接口地址 | 3.4 | |
success | function | - | 否 | 接口调用成功的回调函数 | 3.4 |
fail | function | - | 否 | 接口调用失败的回调函数 | 3.4 |
complete | function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | 3.4 |
# 返回值
connectContainer
Promise resolve 的结果 / success 回调的结果是如下对象,包含用于收发消息和管理链接的 socketTask
属性:
属性 | 类型 | 说明 | 最低版本 |
---|---|---|---|
socketTask | SocketTask | socket 对象,和 wx.connectSocket 返回值一样 |
# 代码示例
在小程序 app.js
文件中替换如下代码:
<script src="https://web-9gikcbug35bad3a8-1304825656.tcloudbaseapp.com/sdk/1.3.0/cloud.js"></script>
<script>
window.onload = async function () {
var c1 = new cloud.Cloud({
identityless: true,
resourceAppid:'微信云托管所在的「小程序/公众号」appid', // 替换成自己的
resourceEnv: "微信云托管环境ID", // 替换成自己的
});
await c1.init();
const { socketTask } = await c1.connectContainer({
path: '/xxx', // 填入业务自定义路径和参数,根目录,就是 /
header: {
'X-WX-SERVICE': 'xxx', // xxx中填入服务名称(微信云托管 - 服务管理 - 服务列表 - 服务名称)
}
// 其余参数同 wx.connectSocket
});
socketTask.onMessage(function (res) {
console.log('【WEBSOCKET】', res.data)
})
socketTask.onOpen(function (res) {
console.log('【WEBSOCKET】', '链接成功!')
socketTask.send({
data: '这是公众号H5消息'
})
})
socketTask.onClose(function (res) {
console.log('【WEBSOCKET】链接关闭!')
})
}
</script>