|
@@ -12,11 +12,13 @@ import (
|
|
|
"net"
|
|
|
"strconv"
|
|
|
"testing"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -55,6 +57,10 @@ func (b *Broker) serverLoop() {
|
|
|
reqHeader := make([]byte, 4)
|
|
|
resHeader := make([]byte, 8)
|
|
|
for response := range b.responses {
|
|
|
+ if response == nil {
|
|
|
+ time.Sleep(250 * time.Millisecond)
|
|
|
+ continue
|
|
|
+ }
|
|
|
_, err := io.ReadFull(conn, reqHeader)
|
|
|
if err != nil {
|
|
|
b.t.Error(err)
|
|
@@ -76,7 +82,7 @@ func (b *Broker) serverLoop() {
|
|
|
b.listener.Close()
|
|
|
return
|
|
|
}
|
|
|
- if response == nil {
|
|
|
+ if len(response) == 0 {
|
|
|
continue
|
|
|
}
|
|
|
binary.BigEndian.PutUint32(resHeader, uint32(len(response)+4))
|