@@ -205,16 +205,12 @@ func (c *Client) Listen(ctx context.Context) (drpc.Conn, error) {
205
205
return nil , codersdk .ReadBodyAsError (res )
206
206
}
207
207
208
- ctx , cancelFunc := context .WithCancel (ctx )
209
- ctx , wsNetConn := websocketNetConn (ctx , conn , websocket .MessageBinary )
210
- pingClosed := pingWebSocket (ctx , c .SDK .Logger (), conn , "coordinate" )
208
+ _ , wsNetConn := websocketNetConn (ctx , conn , websocket .MessageBinary )
211
209
212
210
netConn := & closeNetConn {
213
211
Conn : wsNetConn ,
214
212
closeFunc : func () {
215
- cancelFunc ()
216
213
_ = conn .Close (websocket .StatusGoingAway , "Listen closed" )
217
- <- pingClosed
218
214
},
219
215
}
220
216
config := yamux .DefaultConfig ()
@@ -720,45 +716,3 @@ func (c *closeNetConn) Close() error {
720
716
c .closeFunc ()
721
717
return c .Conn .Close ()
722
718
}
723
-
724
- func pingWebSocket (ctx context.Context , logger slog.Logger , conn * websocket.Conn , name string ) <- chan struct {} {
725
- // Ping once every 30 seconds to ensure that the websocket is alive. If we
726
- // don't get a response within 30s we kill the websocket and reconnect.
727
- // See: https://github.com/coder/coder/pull/5824
728
- closed := make (chan struct {})
729
- go func () {
730
- defer close (closed )
731
- tick := 30 * time .Second
732
- ticker := time .NewTicker (tick )
733
- defer ticker .Stop ()
734
- defer func () {
735
- logger .Debug (ctx , fmt .Sprintf ("%s pinger exited" , name ))
736
- }()
737
- for {
738
- select {
739
- case <- ctx .Done ():
740
- return
741
- case start := <- ticker .C :
742
- ctx , cancel := context .WithTimeout (ctx , tick )
743
-
744
- err := conn .Ping (ctx )
745
- if err != nil {
746
- logger .Error (ctx , fmt .Sprintf ("workspace agent %s ping" , name ), slog .Error (err ))
747
-
748
- err := conn .Close (websocket .StatusGoingAway , "Ping failed" )
749
- if err != nil {
750
- logger .Error (ctx , fmt .Sprintf ("close workspace agent %s websocket" , name ), slog .Error (err ))
751
- }
752
-
753
- cancel ()
754
- return
755
- }
756
-
757
- logger .Debug (ctx , fmt .Sprintf ("got %s ping" , name ), slog .F ("took" , time .Since (start )))
758
- cancel ()
759
- }
760
- }
761
- }()
762
-
763
- return closed
764
- }
0 commit comments