add ConnClient.LoopUDP()

This commit is contained in:
aler9
2020-07-19 18:25:13 +02:00
parent a110f2b6a2
commit a119764b96
3 changed files with 21 additions and 19 deletions

View File

@@ -20,8 +20,9 @@ import (
)
const (
clientReadBufferSize = 4096
clientWriteBufferSize = 4096
clientReadBufferSize = 4096
clientWriteBufferSize = 4096
clientTcpKeepalivePeriod = 30 * time.Second
)
// Track is a track available in a certain URL.
@@ -403,3 +404,19 @@ func (c *ConnClient) Play(u *url.URL) (*Response, error) {
}
}
}
// LoopUDP is called after setupping UDP tracks and calling Play(); it keeps
// the TCP connection open through keepalives, and returns when the TCP
// connection closes.
func (c *ConnClient) LoopUDP(u *url.URL) (error) {
keepaliveTicker := time.NewTicker(clientTcpKeepalivePeriod)
defer keepaliveTicker.Stop()
for {
<- keepaliveTicker.C
_, err := c.Options(u)
if err != nil {
return err
}
}
}