Соединение AMQP и XMPP - PullRequest
       27

Соединение AMQP и XMPP

0 голосов
/ 17 июля 2011

Я ищу способ написать бота XMPP, который будет слушать очередь RabbitMQ и отправлять сообщения на канал XMPP, уведомляя пользователей о любых новых проблемах (уже есть Nagios, отправляющий уведомления RabbitMQ).

Я попытался использовать xmppy, и он перестал работать, и я наткнулся на SleekXMPP, который выглядит довольно лучше.

Мне просто интересно, если я определю прослушиватель AMQP для автоматического вызова XMPP-метода "send" в боте. Таким образом, он будет слушать одновременно AMQP и XMPP.

Спасибо за помощь!

Редактировать: BOSH будет гораздо лучшим решением здесь?

Ответы [ 3 ]

1 голос
/ 18 июля 2011

Наиболее интересной частью вашего решения будет то, что многие библиотеки в этом пространстве предполагают, что они являются единственным циклом событий.Вам нужно будет либо поместить каждый в свой собственный поток (казалось бы, проще, но это чревато скрытыми проблемами блокировки), используйте неблокирующий подход ввода / вывода, например Twisted (но вам нужен AMQP library ), или извлеките дескрипторы файлов сокетов из каждой библиотеки, которую вы используете, и запустите select () или poll () над ними, чтобы указать, когда есть данные для чтения.Из этих трех подход Twisted кажется мне наиболее простым.

BOSH только усложнит проблему.Не иди этим путем.

1 голос
/ 17 июля 2011

Это действительно довольно просто.Я предлагаю вам начать с написания прослушивателя AMQP, который просто распечатывает полученные сообщения.Как только вы это заработаете, должно быть очевидно, как интегрировать это в XMPP-бот.

0 голосов
/ 21 января 2012

Вы можете использовать ejabberd и плагин xmpp, как этот https://github.com/rabbitmq/rabbitmq-xmpp

...