diff --git a/common/mux/client.go b/common/mux/client.go index 1d0180eef..65ee73e28 100644 --- a/common/mux/client.go +++ b/common/mux/client.go @@ -188,6 +188,9 @@ var ( // NewClientWorker creates a new mux.Client. func NewClientWorker(stream transport.Link, s ClientStrategy) (*ClientWorker, error) { + writer := buf.NewBufferedWriter(stream.Writer) + writer.SetBuffered(false) + stream.Writer = writer c := &ClientWorker{ sessionManager: NewSessionManager(), link: stream, diff --git a/common/mux/server.go b/common/mux/server.go index c23a3789e..01a1dac81 100644 --- a/common/mux/server.go +++ b/common/mux/server.go @@ -93,9 +93,11 @@ type ServerWorker struct { } func NewServerWorker(ctx context.Context, d routing.Dispatcher, link *transport.Link) (*ServerWorker, error) { + writer := buf.NewBufferedWriter(link.Writer) + writer.SetBuffered(false) worker := &ServerWorker{ dispatcher: d, - link: link, + link: &transport.Link{Reader: link.Reader, Writer: writer}, sessionManager: NewSessionManager(), done: done.New(), timer: time.NewTicker(60 * time.Second),