You need to enable JavaScript to run this app.
文档中心
实时音视频

实时音视频

复制全文
下载 pdf
微信小程序 SDK 相关
如何解决网络断开重连后用户无法进房
复制全文
下载 pdf
如何解决网络断开重连后用户无法进房
问题描述​
异常中断可能是本地网络断开,也可能是微信小程序被切换到后台,中断恢复后,SDK 无法自动重新进房。​
问题解答​
首先需要判断 WebSocket 在异常中断后是否已经断开。​
如果 WebSocket 在异常中断后断连,则需要进行重连。​
如果异常中断后 WebSocket 连接没有正常断开,由于小程序最多支持 2 个并发 WebSocket 连接,此时 SDK 尝试进房将没有可用的 WebSocket 连接。因此,你需要确保用户退出房间时调用 client.leave 来断开 WebSocket 长连接。​
示例代码​
在 meeting.js 中加入以下代码。​
​
Page({​
data: {​
networkStatus: true,​
},​
onLoad() {​
wx.onNetworkStatusChange(e => {​
const isConnected = e.isConnected;​
​
if (isConnected && !this.data.networkStatus) {​
// 处理断网恢复​
this.reconnect();​
}​
this.setData({​
networkStatus: isConnected,​
});​
});​
},​
onShow() {​
if (this.client && this.client.state !== 'connected') {​
// 处理退后台再回前台的case​
this.reconnect();​
}​
},​
reconnect() {​
wx.showToast({​
title: `恢复连接中...`,​
icon: 'none',​
duration: 2000,​
});​
​
if (this.client) {​
this.client.destroy();​
}​
​
this.setData({ remoteStreams: [], publishUrl: '' });​
this.client = new VolcEngineRTCMiniappSDK.Client();​
this._handleClientEvents();​
this.join();​
},​
_handleClientEvents() {​
if (this.client) {​
this.client.removeAllListeners();​
}​
this.client.on(VolcEngineRTCMiniappSDK.EVENTS.CLOSE, (e) => {​
// 如果连接的websocket域名处于黑名单中​
// 需要销毁做重连​
this.reconnect();​
})​
}​
})​
​
​
最近更新时间:2026.07.29 15:44:44
这个页面对您有帮助吗?
有用
有用
无用
无用