diff --git a/monitor/monitor.go b/monitor/monitor.go
index <HASH>..<HASH> 100644
--- a/monitor/monitor.go
+++ b/monitor/monitor.go
@@ -156,24 +156,20 @@ func (m *Monitor) send(pl payload.Payload) {
 	if err != nil {
 		log.WithError(err).Fatal("meta encode")
 	}
+
+	msgBuf := append(metaBuf, payloadBuf...)
+
 	var next *list.Element
 	for e := listeners.Front(); e != nil; e = next {
 		client := e.Value.(net.Conn)
 		next = e.Next()
 
-		if _, err := client.Write(metaBuf); err != nil {
+		if _, err := client.Write(msgBuf); err != nil {
 			client.Close()
 			listeners.Remove(e)
 			writeError("metadata", err)
 			continue
 		}
-
-		if _, err := client.Write(payloadBuf); err != nil {
-			client.Close()
-			listeners.Remove(e)
-			writeError("payload", err)
-			continue
-		}
 	}
 }
monitor: Concat byte buffers before writing