Надежный клиент на основе stomp.py пополняет список подписчиков в ActiveMQ - PullRequest
3 голосов
/ 23 сентября 2010

У меня проблема с надежным клиентом в ActiveMQ.Я использую stomp.py в Python.

 conn.start()
 conn.connect(wait=True, header = {'client-id': 'myhostname' })
 conn.subscribe(
            '/topic/testTopic', ack='auto',
            headers = {
                'activemq.subscriptionName': 'myhostname',
                'selector': "clientid <> '%s'" % 'myhostname'
            }
)

Как вы можете видеть из моего кода, я устанавливаю свой clientId как свое собственное имя хоста.Как показано на прилагаемом скриншоте (ниже), clientId выглядит примерно так: «ID: Atlas ....».

Проблема в том, что каждый раз, когда я отключаю свой клиент на основе stomp.py, я получаю новый "clientId" при следующем подключении.Это приводит к тому, что список подписчиков в ActiveMQ заполняется: alt text (на изображении выше показан подписчик в моем брокере ActiveMQ. В следующий раз, когда я отключаюсь, а затем подключаюсь, запись выше все равно останется, а еще одна будет добавлена. Довольноскоро у меня много подписчиков в списке).

Странно то, что селектор работает на 100% (я проверяю это, меняя <> на =, чтобы сообщения возвращались мне), поэтомуclientId должен работать как-то.

1 Ответ

3 голосов
/ 26 сентября 2010

Я решил, все из-за простой орфографической ошибки.Строка:

conn.connect(wait=True, header = {'client-id': 'myhostname' })

должна содержать «заголовки» во множественном числе.

...