JQ Blog

PubSubHubbub

PubSubHubbubとは

PubSubHubbub (パブサブハブバブ) とは、更新情報を Google にリアルタイムで通知することができるプロトコルです。略して、PuSH (プッシュ) とも呼ばれます。Pub は Publisher (配信)、Sub は Subscriber (購読) を意味しており、その間に Hub というサービス (中間サーバ) があるため、このような名前になっています。配信側がコンテンツを更新すると、Hub が購読側に通知を行います。購読側は更新情報をすぐに知ることができるため、リアルタイムの情報配信が実現できる仕組みになっています。

参照 - https://murashun.jp/blog/20150915-01.html

PubSubHubbubにリクエストを送る方法

PubSubHubbubにリクエストを送る場合は、下記のURLにPOSTでリクエストを送る。

http://pubsubhubbub.appspot.com/

リクエストを送る場合、dataとしてhub.modepublishを設定し、hub.urlフィードのURLを設定する。また、Content-Typeにはapplication/x-www-form-urlencodedを設定する。

PubSubHubbub対応に使えるGems

とりあえずgithubのstarsがigrigorik/PubSubHubbubの方が多かったのでこれの使い方を少しみてみる。
- Simple client example

1
2
3
4
5
6
EventMachine.run {
  pub = EventMachine::PubSubHubbub.new('http://pubsubhubbub.appspot.com/publish').publish "http://www.test.com/"

  pub.callback { puts "Successfully notified hub." }
  pub.errback  { puts "Uh oh, something broke: #{pub.response}" }
}
  • Posting multiple URL’s
1
2
3
4
5
6
7
EventMachine.run {
  feeds = ["http://www.test.com", "http://www.test.com/2"]
  pub = EventMachine::PubSubHubbub.new('http://pubsubhubbub.appspot.com/publish').publish feeds

  pub.callback { puts "Successfully notified hub." }
  pub.errback  { puts "Uh oh, something broke: #{pub.response}" }
}

参照

https://qiita.com/tackeyy/items/0d2079d901d495f50c1e
https://murashun.jp/blog/20150915-01.html
https://github.com/igrigorik/PubSubHubbub