[adapters] 增加对多线程 WebSocket 的支持

This commit is contained in:
SmallMain
2024-11-29 10:26:50 +08:00
parent 8b254fb84d
commit 203e5e290f
5 changed files with 166 additions and 7 deletions

View File

@@ -26,11 +26,13 @@ export default class WebSocket {
this.url = url
this.readyState = WebSocket.CONNECTING
const socketTask = wx.connectSocket({
url,
protocols: Array.isArray(protocols) ? protocols : [protocols],
tcpNoDelay: true
})
const socketTask = CC_WORKER_WEBSOCKET
? new WorkerWebSocket(url, Array.isArray(protocols) ? protocols : [protocols])
: wx.connectSocket({
url,
protocols: Array.isArray(protocols) ? protocols : [protocols],
tcpNoDelay: true
});
_socketTask.set(this, socketTask)
@@ -74,8 +76,10 @@ export default class WebSocket {
}
send(data) {
if (typeof data !== 'string' && !(data instanceof ArrayBuffer) && !ArrayBuffer.isView(data)) {
throw new TypeError(`Failed to send message: The data ${data} is invalid`)
if (!CC_WORKER_WEBSOCKET) {
if (typeof data !== 'string' && !(data instanceof ArrayBuffer) && !ArrayBuffer.isView(data)) {
throw new TypeError(`Failed to send message: The data ${data} is invalid`)
}
}
const socketTask = _socketTask.get(this)