From 35297897878647c309f0213b6ebbdc58129fc77b Mon Sep 17 00:00:00 2001 From: Luk Date: Mon, 16 Sep 2024 15:04:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E6=84=8F=E5=88=B0=EF=BC=8C=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E6=98=BE=E7=A4=BA=E4=BB=8D=E7=84=B6=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E7=9D=80=20socket=EF=BC=8C=E4=BD=86=E5=90=8E=E5=8F=B0=E5=8D=B4?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E4=B8=BA=E4=B8=8D=E6=98=AF=20OPEN=E3=80=82?= =?UTF-8?q?=E6=89=80=E4=BB=A5=E6=8A=8A=20if=20=E6=94=B9=E6=88=90=20try.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- basesocket.js | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/basesocket.js b/basesocket.js index bfa51d2..60a61f0 100644 --- a/basesocket.js +++ b/basesocket.js @@ -86,10 +86,21 @@ module.exports = { sendToAll (dataObj) { my.wsServer.clients.forEach((socket) => { - if (socket.readyState === socket.OPEN) { + //if (socket.readyState === socket.OPEN) { + try { socket.send(typeof dataObj !== 'string' ? JSON.stringify(dataObj) : dataObj) - } else { - console.error({ _at: new Date().toJSON(), _from: 'Socket:sendToAll', _type: 'CWARN', msg: 'sendToAll: Failed sending to unconnected socket', dataObj, usid: socket.usid }, '\n,') + } catch (expt) { + console.error( + { + _at: new Date().toJSON(), + _from: 'Socket:sendToAll', + _type: 'CWARN', + msg: 'sendToAll: Failed sending to unconnected socket', + dataObj, + usid: socket.usid, + }, + '\n,' + ) delete my.socketPool[socket.usid] } }) @@ -97,10 +108,14 @@ module.exports = { sendToOne (dataObj, usid) { const socket = my.socketPool[usid] - if (socket && socket.readyState === socket.OPEN) { + // if (socket && socket.readyState === socket.OPEN) { // 20240916 注意到,前端显示仍然连接着 socket,但后台却判断为不是 OPEN。所以把 if 改成 try. + try { socket.send(typeof dataObj !== 'string' ? JSON.stringify(dataObj) : dataObj) - } else { - console.error({ _at: new Date().toJSON(), _from: 'Socket:sendToOne', _type: 'CWARN', msg: 'sendToOne: Failed sending to unconnected socket', dataObj, usid }, '\n,') + } catch (expt) { + console.error( + { _at: new Date().toJSON(), _from: 'Socket:sendToOne', _type: 'CWARN', msg: 'sendToOne: Failed sending to unconnected socket', dataObj, usid }, + '\n,' + ) delete my.socketPool[usid] } },