Не удается получить привязки Python ZeroMQ для получения сообщений через IPC - PullRequest
21 голосов
/ 21 февраля 2011

Я пытаюсь достичь 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()

1 Ответ

24 голосов
/ 21 февраля 2011

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

...