Написать клиент Ruby on Rails PubSubHubbub - PullRequest
0 голосов
/ 22 мая 2011

Мне нужно написать конечную точку для получения пингов и каналов от концентратора PSHB при публикации нового контента.Я знаю, что в Ruby есть некоторые библиотеки, например https://github.com/igrigorik/PubSubHubbub, но не могу понять, как реализовать обратный вызов Ruby on Rails с кодом реактора, подобным следующему:

require "rubygems"
require "pubsubhubbub"

EventMachine.run {
  # publish single URL
  pub = EventMachine::PubSubHubbub.new('http://pubsubhubbub.appspot.com/publish').publish "http://www.test.com/one-feed.atom"
  pub.callback { puts "Successfully notified hub." }
  pub.errback  { puts "Uh oh, something broke: #{pub.response}" }
}

спасибо ваванс лука

1 Ответ

2 голосов
/ 23 мая 2011

Плагин, который вы указываете, предназначен для издателей.Вам нужно что-то написать для варианта использования «подписчик».

Первое, что вам нужно сделать, это отправить HTTP-запросы POST для подписки.Любая клиентская библиотека HTTP, например typhoeus , должна работать нормально.Посмотрите это руководство , чтобы начать .

Затем вам нужно убедиться, что ваше приложение может обрабатывать уведомления.Создайте контроллер, к которому будут добавлены элементы.Вы хотите использовать разные обратные вызовы для каждого канала, поскольку это значительно упрощает отладку.Создайте контроллер каналов и отправьте на /feeds/1 для канала 1 и т. Д.

Сложная задача - прочитать тело HTTP-уведомления, но я уверен, что Rails позволяет вам использовать rawтело, а не разобранные параметры.

...