mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-11-04 11:22:10 +08:00 
			
		
		
		
	add context life cycle control.
This commit is contained in:
		
							parent
							
								
									557a5a3b46
								
							
						
					
					
						commit
						1b1bc0b756
					
				@ -138,6 +138,7 @@ func (c *Client) readMessage() {
 | 
			
		||||
		if returnErr != nil {
 | 
			
		||||
			log.ZWarn(c.ctx, "readMessage", returnErr, "messageType", messageType)
 | 
			
		||||
			c.closedErr = returnErr
 | 
			
		||||
			<-c.ctx.Done()
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
@ -145,6 +146,7 @@ func (c *Client) readMessage() {
 | 
			
		||||
		if c.closed.Load() {
 | 
			
		||||
			// The scenario where the connection has just been closed, but the coroutine has not exited
 | 
			
		||||
			c.closedErr = ErrConnClosed
 | 
			
		||||
			<-c.ctx.Done()
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
@ -154,10 +156,12 @@ func (c *Client) readMessage() {
 | 
			
		||||
			parseDataErr := c.handleMessage(message)
 | 
			
		||||
			if parseDataErr != nil {
 | 
			
		||||
				c.closedErr = parseDataErr
 | 
			
		||||
				<-c.ctx.Done()
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
		case MessageText:
 | 
			
		||||
			c.closedErr = ErrNotSupportMessageProtocol
 | 
			
		||||
			<-c.ctx.Done()
 | 
			
		||||
			return
 | 
			
		||||
 | 
			
		||||
		case PingMessage:
 | 
			
		||||
@ -166,7 +170,9 @@ func (c *Client) readMessage() {
 | 
			
		||||
 | 
			
		||||
		case CloseMessage:
 | 
			
		||||
			c.closedErr = ErrClientClosed
 | 
			
		||||
			<-c.ctx.Done()
 | 
			
		||||
			return
 | 
			
		||||
 | 
			
		||||
		default:
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user