@@ -19,6 +19,7 @@ import (
1919
2020type WsOptions struct {
2121 PingPeriod time.Duration
22+ Cancel context.CancelFunc
2223}
2324
2425type actionType uint8
@@ -75,12 +76,12 @@ func ListeningWs(ctx context.Context, conn *websocket.Conn, options WsOptions, l
7576 err = conn .SetReadDeadline (time .Now ().Add (readDeadline ))
7677 if err != nil {
7778 logger .Debug ("L2 ws: set write deadline failed" , "error" , err )
78- return
79+ break
7980 }
8081 messageType , p , err := conn .ReadMessage ()
8182 if err != nil {
8283 logger .Error (err , "L2 ws read message" )
83- return
84+ break
8485 }
8586 respMessageType .Store (uint32 (messageType ))
8687 if messageType == 1 {
@@ -94,6 +95,7 @@ func ListeningWs(ctx context.Context, conn *websocket.Conn, options WsOptions, l
9495 conn , err := protocolService .GetConnection (ctx , overlay )
9596 if err != nil {
9697 logger .Error (err , "L2 get connection" )
98+ break
9799 }
98100 err = conn .SendMessage (ctx , msg )
99101 if err != nil {
@@ -126,6 +128,7 @@ func ListeningWs(ctx context.Context, conn *websocket.Conn, options WsOptions, l
126128 }
127129 }
128130 }
131+ options .Cancel ()
129132 }()
130133
131134 defer func () {
@@ -147,7 +150,6 @@ func ListeningWs(ctx context.Context, conn *websocket.Conn, options WsOptions, l
147150 }
148151 return
149152 case <- ticker .C :
150- err = conn .SetWriteDeadline (time .Now ().Add (writeDeadline ))
151153 if err != nil {
152154 logger .Debug ("L2 ws: set write deadline failed" , "error" , err )
153155 return
0 commit comments