也允许不安全的域名,TLS,证书了。 代码是类似这样的,所有的handler都没有收到信息 let socketTask = wx.connectSocket({ url: 'wss://xxxxx.com:443' , // <-------- 已经加入了白名单,并且开发工具不安全选项也已经开了 success: function(e) { console.log("???") // <----- 这里有执行到 } }) console.log(socketTask.readyState); // <----- 直接就是 3 CLOSED console.log("try login"); socketTask.onMessage(function() { console.log("ddd"); }) socketTask.onOpen(function() { console.log("aaa"); }) socketTask.onError(function() { console.log("bbb"); }) socketTask.onClose(function() { console.log("ccc"); }) console.log(socketTask.readyState);
wx.connectSocket 在微信开发者工具中,不能发出连接,抓包根本没抓到发出的包发现调用wx.connectSocket根本没有执行到连接。 具体调试细节如下,请问是什么原因,是什么地方没有初始化吗? 重现: 直接在打飞机小游戏中,new Main()后面,加入wx.connectSocket 就可以发现。 调试下去在asdebug.js 内createSocketTask 函数: try { let e = window.WebSocket; // <------------ 这里window里面没有WebSocket if (a.asLoader) { // <------------ 这里a里面没有asLoader const t = a.asLoader.getInstanceWindowSync(); if (!t) return void u({ errMsg: "connectSocket:fail runtime invalidated" }); e = t.__global.WebSocket } E = new e(h,t.protocols || []) // <------------ 这里e = undefined,抛出异常 } catch (e) { if (k) return; o.emit("triggerOnEvent", "onSocketTaskStateChange", { // 到了这里 socketTaskId: w, state: "error", errMsg: "未完成的操作" }), delete c[w] } if (!E) return; // <------------ 这里直接return
2021-04-23