mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-11-04 19:32:17 +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 {
 | 
							if returnErr != nil {
 | 
				
			||||||
			log.ZWarn(c.ctx, "readMessage", returnErr, "messageType", messageType)
 | 
								log.ZWarn(c.ctx, "readMessage", returnErr, "messageType", messageType)
 | 
				
			||||||
			c.closedErr = returnErr
 | 
								c.closedErr = returnErr
 | 
				
			||||||
 | 
								<-c.ctx.Done()
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -145,6 +146,7 @@ func (c *Client) readMessage() {
 | 
				
			|||||||
		if c.closed.Load() {
 | 
							if c.closed.Load() {
 | 
				
			||||||
			// The scenario where the connection has just been closed, but the coroutine has not exited
 | 
								// The scenario where the connection has just been closed, but the coroutine has not exited
 | 
				
			||||||
			c.closedErr = ErrConnClosed
 | 
								c.closedErr = ErrConnClosed
 | 
				
			||||||
 | 
								<-c.ctx.Done()
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -154,10 +156,12 @@ func (c *Client) readMessage() {
 | 
				
			|||||||
			parseDataErr := c.handleMessage(message)
 | 
								parseDataErr := c.handleMessage(message)
 | 
				
			||||||
			if parseDataErr != nil {
 | 
								if parseDataErr != nil {
 | 
				
			||||||
				c.closedErr = parseDataErr
 | 
									c.closedErr = parseDataErr
 | 
				
			||||||
 | 
									<-c.ctx.Done()
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		case MessageText:
 | 
							case MessageText:
 | 
				
			||||||
			c.closedErr = ErrNotSupportMessageProtocol
 | 
								c.closedErr = ErrNotSupportMessageProtocol
 | 
				
			||||||
 | 
								<-c.ctx.Done()
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		case PingMessage:
 | 
							case PingMessage:
 | 
				
			||||||
@ -166,7 +170,9 @@ func (c *Client) readMessage() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		case CloseMessage:
 | 
							case CloseMessage:
 | 
				
			||||||
			c.closedErr = ErrClientClosed
 | 
								c.closedErr = ErrClientClosed
 | 
				
			||||||
 | 
								<-c.ctx.Done()
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user