Add tunnel fixes for quic and keepalive

This commit is contained in:
Asim Aslam
2019-09-12 16:22:43 -07:00
parent ec6a30be37
commit 97cf478f71
3 changed files with 39 additions and 26 deletions

View File

@@ -5,6 +5,7 @@ import (
"context"
"crypto/tls"
"encoding/gob"
"time"
"github.com/lucas-clemente/quic-go"
"github.com/micro/go-micro/transport"
@@ -43,6 +44,9 @@ func (q *quicSocket) Recv(m *transport.Message) error {
}
func (q *quicSocket) Send(m *transport.Message) error {
// set the write deadline
q.st.SetWriteDeadline(time.Now().Add(time.Second * 10))
// send the data
return q.enc.Encode(m)
}
@@ -113,7 +117,10 @@ func (q *quicTransport) Dial(addr string, opts ...transport.DialOption) (transpo
NextProtos: []string{"http/1.1"},
}
}
s, err := quic.DialAddr(addr, config, &quic.Config{KeepAlive: true})
s, err := quic.DialAddr(addr, config, &quic.Config{
IdleTimeout: time.Minute * 2,
KeepAlive: true,
})
if err != nil {
return nil, err
}