Я пытаюсь простой код:ZeroMQ в ходе не будет печатать мое JSon сообщения байт от PULL розетки
package main
import (
"fmt"
zmq "github.com/alecthomas/gozmq"
)
func main() {
context, _ := zmq.NewContext()
defer context.Close()
// Socket to receive messages on
receiver, _ := context.NewSocket(zmq.PULL)
defer receiver.Close()
receiver.Connect("tcp://localhost:5557")
// Process tasks forever
for {
msgbytes, _ := receiver.Recv(0)
fmt.Println("received")
fmt.Println(string(msgbytes))
}
}
В NodeJS я отправляю сообщение, как это:
console.log(payload);
sender.send(JSON.stringify(payload));
я могу см. json на консоли, поэтому sender.sen()
фактически отправляет вещи. Кроме того, выход из программы .go
для каждой полезной нагрузки:
received
[]
received
[]
Там нет никакого вывода. Я искал GoDocs для метода Recv
и нет разделения как recv_json, recv_message, etc
, как на других языках, это все байты. Так что происходит? Я отправляю строку, потому что она отправляется как stringfy, не так ли?
UPDATE
Как сказано ниже Nehal, я изменил оператор импорта в официальную репутацию, и это новый код:
пакет главного
import (
"fmt"
zmq "gopkg.in/zeromq/goczmq.v4"
)
func main() {
// Socket to receive messages on
receiver, _ := zmq.NewPull("tcp://*:5557")
defer receiver.Destroy()
// Process tasks forever
for {
request, _ := receiver.RecvMessage()
fmt.Println("received")
fmt.Println(request)
}
}
Но на этот раз " полученное "даже не напечатано, кажется, что сообщение не получено вообще
Попробуйте 'goczmq'. https://godoc.org/github.com/zeromq/goczmq#Sock.RecvMessage –
@NehalJWani Я обновил код, не могли бы вы взглянуть? –