diff --git a/wsjson/wsjson.go b/wsjson/wsjson.go
index aecbf404df2d5706060b5274dd2a87a4f20dd7f8..fabd310fe0f96229e22b24e2c8c9508a9fc031f2 100644
--- a/wsjson/wsjson.go
+++ b/wsjson/wsjson.go
@@ -43,7 +43,7 @@ func read(ctx context.Context, c *websocket.Conn, v interface{}) (err error) {
 	if err != nil {
 		return err
 	}
-	err = jzon.Unmarshal(b.Bytes(), v)
+	err = jzon.NewDecoder(b).Decode(v)
 	if err != nil {
 		return fmt.Errorf("failed to unmarshal JSON: %w", err)
 	}