мой Redis клиент может получить только подтверждение первоначального подключения к каналу, но не сообщение - PullRequest
0 голосов
/ 10 июня 2019

Я тестирую Redis Pub / Sub в Python-3. У меня есть сценарий Python (клиент A) опубликовать сообщение на канал. У меня есть другой скрипт Python (клиент B), чтобы подписаться на канал и получить сообщение. Два сценария находятся в двух разных файлах Python. Однако B не может получить сообщение, а только подтверждение подключенного канала.

a = redis.StrictRedis(host='localhost', port=6379, db=0)
a.publish('flag','good job')
#
b = redis.StrictRedis(host='localhost', port=6379, db=0)
p = b.pubsub()
p. subscribe(['flag'])

while True:
    for m in p.listen():
        if m['type'] == 'subscribe':
            print('channel connected')
        elif m['type'] == 'message':
            print (m['data'])
        else:
            print('something wrong!')

Выходы из моего терминала: канал подключен

То, что я ожидаю, это: полное содержание сообщения, следующее после "канала связи".

1 Ответ

0 голосов
/ 11 июня 2019

Может быть, вы должны использовать p.get_message() вместо p.listen()?

Читать это https://medium.com/@johngrant/python-redis-pub-sub-6e26b483b3f7

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...