Подтвердить что ты не робот

Не удается получить привязки python ZeroMQ для получения сообщений по IPC

Я пытаюсь достичь PUB/SUB по IPC. Если я изменил код ниже, чтобы подписчик привязывался к "tcp://*: 5000", и издатель подключается к "tcp://localhost: 5000", он работает, но я не могу заставить его работать над IPC. Что я делаю неправильно?

subscriber.py

import zmq, json

def main():
    context = zmq.Context()
    subscriber = context.socket(zmq.SUB)
    subscriber.bind("ipc://test")
    subscriber.setsockopt(zmq.SUBSCRIBE, '')
    while True:
        print subscriber.recv()

if __name__ == "__main__":
    main()

publisher.py

import zmq, json, time

def main():
    context = zmq.Context()
    publisher = context.socket(zmq.PUB)
    publisher.connect("ipc://test")
    while True:
        publisher.send( "hello world" )
        time.sleep( 1 )

if __name__ == "__main__":
    main()
4b9b3361

Ответ 1

скорее всего, причина в том, что вы запускаете издателя в другом каталоге. Попробуйте использовать абсолютный путь для местоположения канала: "ipc:///tmp/test.pipe". То, как вы его используете, теперь делает его относительно текущего рабочего каталога.