Я использую библиотеку 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 не собирает данные