PHP: Pubsubhubbub ve gerçek zamanlı bilgileri (abone için)

3 Cevap php

Ben (ve her şey hakkında gerçek zamanlı) Pubsubhubbub ile şimdi başladı, ama ben Subscriber seçeneği ile sorun yaşıyorsanız.

Ben PHP bir webapp geliştirmeye çalışıyorum:

  1. Hub (http://pubsubhubbub.appspot.com/) için (daha önce Yayınlandı) bir RSS abone;
  2. Read notifications (updates) from the Hub for the subscription; without succeed!!! :(

I verify that exist a library in php to the Subscriber (in Git), but using this lib can't make the Subscribe work's (get a 409 error!).

Is there anyone who has joined all the pieces and want share with other users? Can post the source code for the Subscriber and the Management of updates from the Hub ?

Bu "gerçek zamanlı" şeyler yeni başlayanlar için büyük bir yardımcıdır.

Regards, DDLuis

3 Cevap

Bu eski bir soru ve PHP kütüphanesi ddluis birçok kusurları vardır bağlantılıdır.

Google Code wiki de önerilen PHP abone PuSHSubscriber olduğunu:

http://github.com/lxbarth/PuSHSubscriber/

UPDATE:

Ben PuSHSubscriber çatallı: http://github.com/bobdia/PuSHSubscriber

Ben orijinal ile birkaç uyumsuz değişiklikleri yaptık. Basit bir uygulama /example dizininde bulunabilir. Bu sadece gösteri amaçlı, gerçek kullanım amaçlı değildir. Ben bunu yararlı bulacağını umuyorum.

Ben denemek istiyorum ilk şey, kütüphaneler hakkında unutmak ve tam bir abonenin bağlamında neler olduğunu anlamak için deneyin. Bu arada tüm bu işler bir komut dosyası oluşturmak için gerçekten çok basit olmalıdır.

Bir abone bir uygulama 2 şey yapmanız gerekir:

  • Susbcription onaylayın: hub susbcriber niyetini teyit edecektir. Bu bir GET isteği var
  • Gelen ping ile anlaşma. Bu bir POST isteği var.

Öyleyse başlayalım:

  1. Hub GET istekleri işlemek için balya olmalıdır (ki bu bir güvenlik duvarının arkasından erişilebilir olmalıdır) web üzerinde bir yere script koymak. Emin olun o only bu yanıtın vücutta alır ve 200 döner hub.challenge param yankıları.
  2. . curl -X POST http://pubsubhubbub.appspot.com/-d'hub mode = abone '-d'hub doğrulamak = senkron.'-D'hub topic = http://the.feed.url ':. Komut satırından aşağıdaki Gönder -d'hub. callback = http://the.script.url '-D-
  3. Sen senaryo üzerinde gelen doğrulama isteği görmelisiniz. 1. adımı takip eğer İdeal (bu hub.challenge yankı ve 200 dönmelidir.

Bu tüm ince hub 204 verdiğini söylemeliyim. Eğer başka bir şey alırsanız, yanıt gövdesini kontrol göndermek kıvırmak isteği olsaydı, neyin yanlış gittiğini gösterir.

Daha sonra ...

  1. Sizin komut bir POST isteği alacaksınız. Bu yeni içerik bir bildirim var!
  2. Bu POST isteği ham gövdesini (XML) ayrıştırmak, sadece yeni girişleri ile beslemeyi içerir.
  3. (... Bir veritabanına kaydetmek vb) ayrıştırılmış içeriği ile yapılması gereken neyse yapın.

Bu yardımcı olur umarım. Sen also use this tool sizin aboneliğinizi hata ayıklama yapabilirsiniz yardıma ihtiyacım var.

Iyi dokümanlar ile, yardımcı olabilecek bazı kod:

Örnek besleme agregator: