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] } },