trying to set up a connection with DG Golang sdk, keep getting the error of
EOF
from the streaming option
func (c *Client) Stream(r io.Reader) error {
klog.V(6).Infof("live.Stream() ENTER\n")
chunk := make([]byte, ChunkSize)
for {
select {
case <-c.ctx.Done():
klog.V(2).Infof("stream object Done()\n")
klog.V(6).Infof("live.Stream() LEAVE\n")
return nil
default:
bytesRead, err := r.Read(chunk)
if err != nil {
errStr := err.Error()
switch {
case strings.Contains(errStr, SuccessfulSocketErr):
klog.V(3).Infof("Graceful websocket close\n")
klog.V(6).Infof("live.Stream() LEAVE\n")
return nil
case strings.Contains(errStr, FatalReadSocketErr):
klog.V(1).Infof("Fatal socket error: %v\n", err)
klog.V(6).Infof("live.Stream() LEAVE\n")
return err
case (err == io.EOF || err == io.ErrUnexpectedEOF) && !c.retry:
klog.V(3).Infof("stream object EOF\n")
klog.V(6).Infof("live.Stream() LEAVE\n")
return err
default:
klog.V(1).Infof("r.Read error. Err: %v\n", err)
klog.V(6).Infof("live.Stream() LEAVE\n")
return err
}
}
if bytesRead == 0 {
klog.V(7).Infof("Skipping. bytesRead == 0\n")
continue
}
byteCount, err := c.Write(chunk[:bytesRead])
if err != nil {
klog.V(1).Infof("w.Write failed. Err: %v\n", err)
klog.V(6).Infof("live.Stream() LEAVE\n")
return err
}
klog.V(7).Infof("io.Writer succeeded. Bytes written: %d\n", byteCount)
}
}
}