// Dump receives all message parts from socket, prints neatly func Dump(socket *zmq.Socket) { fmt.Println("----------------------------------------") parts, err := socket.Recv() if err != nil { fmt.Println(err) return } for _, msg := range parts { var binary bool for _, x := range msg { if x < 32 || x > 127 { binary = true break } } // Dump the message as text or binary fmt.Printf("[%03d] ", len(msg)) if binary { fmt.Printf("% X\n", msg) } else { fmt.Println(string(msg)) } } }