Zmq pub от go, использующего ipc для подписчика на python, не работает, но tcp работает - PullRequest
0 голосов
/ 06 января 2019

Я использую библиотеку go и zmg github.com/zeromq/goczmq

С ходу я могу отправлять сообщения в tcp-сокет и читать с python:

В ходу:

pubEndpoint := "tcp://127.0.0.1:7000"
pubSock, err := goczmq.NewPub(pubEndpoint)
if err != nil {
    log.Fatal(err)
}
defer pubSock.Destroy()
pubSock.Bind(pubEndpoint)

for {
    err = pubSock.SendFrame([]byte("stream hello"), goczmq.FlagNone)
}

В питоне:

context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.connect("tcp://127.0.0.1:%s"%port)
print ('port:',port)
socket.setsockopt(zmq.SUBSCRIBE, "stream")

while True:
    transpport = socket.recv()
    transpport = transpport.split('stream ')[1]
    print (transpport)

Теперь, если я перехожу с tcp на icp для обоих, я не получаю ошибок, но код python не печатает данные.

Теперь в Python издатель и подписчик работает через ipc. Я пытаюсь реорганизовать мой издатель для использования Go, но предпочитаю использовать ipc вместо tcp.

Так что в сумме tcp работает от go -> python Ipc не выдает ошибок, но Python не собирает данные

...