mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-11-04 03:13:15 +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