注意到,前端显示仍然连接着 socket,但后台却判断为不是 OPEN。所以把 if 改成 try.

This commit is contained in:
Luk 2024-09-16 15:04:53 +08:00
parent 6ba3fb1ea8
commit 3529789787

View File

@ -86,10 +86,21 @@ module.exports = {
sendToAll (dataObj) { sendToAll (dataObj) {
my.wsServer.clients.forEach((socket) => { 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) socket.send(typeof dataObj !== 'string' ? JSON.stringify(dataObj) : dataObj)
} else { } 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,') 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] delete my.socketPool[socket.usid]
} }
}) })
@ -97,10 +108,14 @@ module.exports = {
sendToOne (dataObj, usid) { sendToOne (dataObj, usid) {
const socket = my.socketPool[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) socket.send(typeof dataObj !== 'string' ? JSON.stringify(dataObj) : dataObj)
} else { } catch (expt) {
console.error({ _at: new Date().toJSON(), _from: 'Socket:sendToOne', _type: 'CWARN', msg: 'sendToOne: Failed sending to unconnected socket', dataObj, usid }, '\n,') 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] delete my.socketPool[usid]
} }
}, },