我现在开始使用 Pubsubhubbub (以及所有关于实时的东西),但我在使用订阅者选项时遇到了问题。
我正在尝试用 PHP 开发一个网络应用程序:
- 订阅 RSS(之前发布的)到 Hub (http://pubsubhubbub.appspot.com/ http://pubsubhubbub.appspot.com/);
- 从订阅中心读取通知(更新);
没有成功! :(
我验证存在一个库php 发送给订阅者 http://pubsubhubbub.googlecode.com/svn/trunk/subscriber_clients/php/(在 Git 中),但是
使用此库无法使订阅工作(出现 409 错误!)。
我怎样才能做到这一点?
我尝试的第一件事就是忘记库,并尝试准确理解订阅者上下文中发生的情况。构建一个同时处理所有这些的脚本应该非常非常简单。
订阅者应用程序必须做两件事:
- 确认订阅:中心将验证订阅者的意图。这是一个 GET 请求
- 处理传入的 ping。这是一个 POST 请求。
那么让我们开始吧:
- 将脚本放在网络上的某个位置(必须可以从防火墙后面访问),该脚本必须能够处理来自集线器的 GET 请求。确保它only呼应
hub.challenge
它在响应正文中获取并返回 200 的参数。
- 从命令行发送以下内容:
curl -X POST http://pubsubhubbub.appspot.com/ http://pubsubhubbub.appspot.com/ -d'hub.mode=subscribe' -d'hub.verify=sync' -d'hub.topic=http://the.feed.url' -d'hub.callback=http://the.script.url' -D-
- 您应该在脚本上看到传入的验证请求。理想情况下(如果您遵循步骤 1,它应该回显 hub.challenge 并返回 200。
如果一切正常,您发送的curl请求应该告诉您集线器返回了204。如果您收到其他任何信息,请检查响应的正文,它会指示您出了什么问题。
Later...
- 您的脚本将收到 POST 请求。这是新内容的通知!
- 解析此 POST 请求的原始正文 (XML),它包含提要,仅包含新条目。
- 对解析的内容执行任何需要执行的操作(保存到数据库中......等)。
我希望这有帮助。你可以也使用这个工具 https://pubsubhubbub.appspot.com/subscribe要调试您的订阅,您需要帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)