Consuming XMPP PubSub в Ruby EventMachine.run (HOST = 'узле pubsub.im.wordpress.com' = 'блоге / пользователь icanhazcheesburger.com' = 'проход user@im.wordpress.com' = 'PASS'

XMPP это очень универсальный протокол с четкона протяжении нескольких сотен предлагаемых рабочих и расширений, который также зарекомендовал себя в производстве (пример: Google Talk). Присутствие, управление реестром, Федеративные и сервера на сервер (S2S) Messaging это все примеры, которые Вы получите в подарок, которыйСделать это очень привлекательная платформа для приложений обмена сообщениями. Комбинируйте его с такими расширениями, как XEP-0060 (PubSub), и мы имеем все соответствующие словечки: PubSub в режиме реального времени, Федеративные и присутствия.

Спецификация PubSub рамках XMPP, какопределена в XEP-0060, явно не в качестве гибкой, как и AMQP, но это часто раза достаточно, чтобы охватить наиболее популярных вариантов использования. Однако, помимо технических преимуществ, одним из основных недостающих компонентов, особенно в Руби, было отсутствие историческогофункционирования библиотек - xmpp4r претензий чтобы поддержать его, но примеры отсутствуют. К счастью, после испытания вождения последнюю партию драгоценных камней, похоже, что мы, наконец, там.

Сойдя с землей с XMPP

Без хорошего XMP ToolkitС может быть искривленным протокол для начала работы с - Pidgin IM клиент имеет много инструментов для шпионажа на бирже, но контроль страницах XML выделите По можете получить только вы до сих пор. К счастью, Сет Фитцсиммонс имеет встроенный коммутатор ( "CURL для XMPP"), WHIch предлагает мощный инструмент командной строки, что значительно упрощает этот процесс. Убедитесь в том, чтобы прочитать полный учебника, или перейти прямо в нее, проверив ее с потоком Wordpress XMPP:

# Вывести список доступных опций, подписаться на блог, список подпискиS, а затем открыть поток
коммутатор Disco - Информация целевой pubsub.im.wordpress.com
коммутатор PubSub - сервер pubsub.im.wordpress.com - узел / Блог / icanhazcheesburger.com подписаться
коммутатор PubSub - сервер pubsub.im.wordpress.comПодписки
коммутатор PubSub - сервер pubsub.im.wordpress.com слушать

На основании xmpp4r, коммутатор также инструментарий для сборки собственных клиентам XMPP, который означает, что они могут быть легко настроены к власти PubSub потребителя. Отначала до конца, и с примерами по-прежнему трудно получить:

> Коммутатор-pubsub.rb

требуют "RubyGems 'требуют' Класса щит 'WordpressJack Def
self.connect
(коммутатор, SettinGS)
switchboard.plug! (PubSubJack)
switchboard.hook (:
должность) switchboard.on_pubsub_event делать
| событие | event.payload.each
делать | Грузоп OAD | payload.elements.each
делать | пункта |
о (: должность,
пункта) END END END END конец Настройки =
Коммутатор:: Settings.new настройках [ 'pubsub.server'да "/>] Settings = 'pubsub.im.wordpress.com' [ 'JID'
] Settings = 'user@im.wordpress.com' [ 'Пароль'
] = 'Пароль щит' =
Коммутатор:: Client.new
(Настройки) Switchboard.plug! (WordpressJack
) Switchboard.on_post делать | Post | ставит "новую должность был получен:" ставит
post.methods.sort.uniq switchboard.run конца выход! XMPP с EventMachine и Nokogiri

Если у вас есть EventMachine стек, или ищете высокой производительности библиотеки, болтовня Джефф Smick безусловно, является жемчужиной для проведения расследования. Комбинация из-за асинхронной природы EventMachine, парсер SAX рамках Nokogiri, и большое DSL сделать это вэры быстро и приятно работать с:

> Болтовня-pubsub.rb

требуют "RubyGems 'требуют' болтовней / Client / Клиент" Требуется
'болтовней / Client / DSL / PubSub' требуют 'EventMachine.run болтовня' (host = 'pubsub.im.wordpreузле ss.com '=' блоге / пользователь icanhazcheesburger.com '=' проход user@im.wordpress.com '=' PASS 'JID =
Blather:: JID.new (
User) Client =
Blather:: Client.setup (