2010-01-15 17 views
11

Tôi bắt đầu với Pubsubhubbub (và tất cả về những thứ thời gian thực), nhưng tôi gặp khó khăn với tùy chọn Người đăng ký.Làm cách nào để sử dụng tùy chọn người đăng ký?

Tôi đang cố gắng để phát triển một ứng dụng web bằng PHP để:

  1. Theo dõi một RSS (đăng trước đó) để Hub (http://pubsubhubbub.appspot.com/);
  2. Đọc thông báo (cập nhật) từ Trung tâm đăng ký; mà không thành công !!! :(

tôi xác minh rằng tồn tại một thư viện ở php to the Subscriber (trong Git), nhưng sử dụng lib này không thể thực hiện Theo dõi công việc của (nhận được một lỗi 409!).

Làm thế nào tôi có thể làm điều này ?

+0

Lỗi 409 là * xung đột * và - trong pubsubhubbub - xảy ra khi xác minh đăng ký không thành công –

+0

OK, tôi đã mở tiền thưởng, nhưng tôi không thể chỉnh sửa câu hỏi của @ddluis, vì vậy tôi sẽ hỏi tại đây. Và làm thế nào chính xác để thực hiện điều này - http://github.com/lxbarth/PuSHSubscriber/ class? Tôi không nhận được phần này: Tích hợp với các ứng dụng máy chủ – lam3r4370

Trả lời

4

Đây là một câu hỏi cũ và ddluis thư viện PHP liên quan đến có nhiều sai sót

các khuyến cáo PHP thuê bao trong wiki Google Code là PuSHSubscriber:.

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

UPDATE:

tôi chia hai PuSHSubscriber: http://github.com/bobdia/PuSHSubscriber

Tôi đã thực hiện một vài thay đổi không tương thích với bản gốc. Việc triển khai đơn giản có thể được tìm thấy trong thư mục /example. Điều này không có nghĩa là để sử dụng thực sự, chỉ cho mục đích trình diễn. Tôi hy vọng bạn thấy nó hữu dụng.

+0

Và tại sao không http://pubsubhubbub.googlecode.com/ svn/trunk/subscriber_clients/php/subscriber.php? Nó đơn giản hơn! – lam3r4370

+0

Và làm thế nào chính xác để thực hiện các lớp học trên? Tôi không nhận được phần này: Tích hợp với các ứng dụng máy chủ – lam3r4370

+2

Các lớp php mà OP liên kết để có vẻ đơn giản bởi vì nó không thực sự làm nhiều. PuSHSubriber là khá đơn giản và làm mọi thứ bạn cần, ngoại trừ lưu trữ các thông báo nhận được. Tôi quyết định thực hiện một ví dụ với nó, vì vậy hãy kiểm tra lại sau một hoặc hai ngày và tôi sẽ đăng một liên kết đến một thứ mà mọi người có thể dễ dàng hiểu được. – bobdiaes

3

Điều đầu tiên tôi d thử là fo rget về các thư viện và cố gắng hiểu những gì đang xảy ra trong bối cảnh của một thuê bao chính xác. Nó sẽ thực sự thực sự đơn giản để xây dựng một kịch bản xử lý tất cả điều này với nhau.

Một ứng dụng thuê bao phải làm 2 việc:

  • Thừa nhận các susbcription: trung tâm sẽ xác minh mục đích của susbcriber. Đó là yêu cầu GET
  • Đối phó với các lần gửi đến. Đó là yêu cầu POST.

Vì vậy, hãy bắt đầu:

  1. Đặt một kịch bản ở đâu đó trên web (nó phải được truy cập từ phía sau một bức tường lửa) mà phải kiện để xử lý để yêu cầu GET từ trung tâm.Hãy chắc chắn rằng nó chỉ vang các param hub.challenge rằng nó được trong cơ thể của phản ứng và trả về 200.
  2. Gửi sau từ dòng lệnh của bạn: curl -X POST 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-
  3. Bạn sẽ thấy một yêu cầu xác minh đến trên kịch bản. Lý tưởng nhất (nếu bạn làm theo bước 1, nó sẽ phản hồi hub.challenge và trả lại một số 200.

Nếu điều này là tốt, yêu cầu curl mà bạn gửi phải cho bạn biết rằng trung tâm trả về 204. Nếu bạn nhận được bất cứ điều gì khác, kiểm tra cơ thể của phản ứng, nó sẽ chỉ ra cho bạn những gì đã xảy ra.

Later ...

  1. kịch bản của bạn sẽ nhận được một yêu cầu POST. Đây là thông báo nội dung mới!
  2. Phân tích cú pháp phần thân thô (XML) của yêu cầu POST này, nó chứa nguồn cấp dữ liệu, onl y với các mục mới.
  3. Làm bất cứ điều gì cần được thực hiện với nội dung được phân tích cú pháp (lưu vào cơ sở dữ liệu ... v.v).

Tôi hy vọng điều này sẽ hữu ích. Bạn có thể also use this tool để gỡ lỗi đăng ký của bạn, bạn cần trợ giúp.

+0

Tôi không nhận được phần 1. "mà phải được kiện để xử lý yêu cầu GET từ trung tâm" Tôi có bất cứ điều gì mà tôi cần làm với PHP ở đây không? Và cách "Phân tích cú pháp cơ thể thô (XML) của yêu cầu POST này, nó chứa nguồn cấp dữ liệu, chỉ với các mục mới" - với simpleXML? – lam3r4370

+0

Vâng, trung tâm sẽ thực hiện yêu cầu HTTP GET cho tập lệnh của bạn, vì vậy tập lệnh này phải "có thể truy cập" từ web. –

+0

Và có, bạn có thể sử dụng simpleXML để phân tích cú pháp nội dung của yêu cầu POST. –

Các vấn đề liên quan