注意到,前端显示仍然连接着 socket,但后台却判断为不是 OPEN。所以把 if 改成 try.
This commit is contained in:
		
							parent
							
								
									6ba3fb1ea8
								
							
						
					
					
						commit
						3529789787
					
				@ -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]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user