diff --git a/bench_test.go b/bench_test.go
index a97341c1e53a746bb0071c4ea3ceca3ee28b0e60..6efbf484e6b2b3f9b0b4e56116b30fd734fb633a 100644
--- a/bench_test.go
+++ b/bench_test.go
@@ -99,6 +99,6 @@ func benchConn(b *testing.B, stream bool) {
 }
 
 func BenchmarkConn(b *testing.B) {
-	benchConn(b, true)
 	benchConn(b, false)
+	benchConn(b, true)
 }
diff --git a/websocket.go b/websocket.go
index c5e3bf5fa48f9e8b074045a30392f9573193aa64..8688509a7facf58f95616d75015d72dc73e39c94 100644
--- a/websocket.go
+++ b/websocket.go
@@ -460,7 +460,7 @@ type messageWriter struct {
 
 // Write writes the given bytes to the WebSocket connection.
 func (w messageWriter) Write(p []byte) (int, error) {
-	n, err := w.Write(p)
+	n, err := w.write(p)
 	if err != nil {
 		return n, xerrors.Errorf("failed to write: %w", err)
 	}
@@ -522,14 +522,14 @@ func (w messageWriter) close() error {
 // You can only read a single message at a time so do not call this method
 // concurrently.
 func (c *Conn) Reader(ctx context.Context) (MessageType, io.Reader, error) {
-	typ, r, err := c.Reader(ctx)
+	typ, r, err := c.reader(ctx)
 	if err != nil {
 		return 0, nil, xerrors.Errorf("failed to get reader: %w", err)
 	}
 	return typ, r, nil
 }
 
-func (c *Conn) reader(ctx context.Context) (MessageType, io.Reader, error)  {
+func (c *Conn) reader(ctx context.Context) (MessageType, io.Reader, error) {
 	for !atomic.CompareAndSwapInt64(&c.activeReader, 0, 1) {
 		select {
 		case <-c.closed: