reuse buffer when reading messages from websocket.

This commit is contained in:
fiatjaf
2023-07-30 17:12:30 -03:00
parent cfcd19568b
commit 35faff858a
2 changed files with 14 additions and 12 deletions

View File

@ -1,6 +1,7 @@
package nostr
import (
"bytes"
"context"
"fmt"
"log"
@ -232,16 +233,18 @@ func (r *Relay) Connect(ctx context.Context) error {
// general message reader loop
go func() {
buf := new(bytes.Buffer)
for {
message, err := conn.ReadMessage(r.connectionContext)
if err != nil {
buf.Reset()
if err := conn.ReadMessage(r.connectionContext, buf); err != nil {
r.ConnectionError = err
r.Close()
break
}
message := buf.Bytes()
debugLogf("{%s} %v\n", r.URL, message)
envelope := ParseMessage(message)
if envelope == nil {
continue