2012-02-29 25 views
7

Tôi sử dụng strophe.js thư viện để gửi và nhận tin nhắn XMPP trong trình duyệt. Nó hoạt động tốt, nhưng chỉ cho người dùng tôi đã có trong danh sách liên lạc của tôi - danh sách.Yêu cầu cấp phép (thêm vào danh sách) bằng cách sử dụng strophe.js

Tôi cần phải thêm ai đó (có địa chỉ mà tôi biết) vào danh sách của tôi. Làm thế nào tôi có thể đạt được điều này bằng cách sử dụng strophe.js? Điều này rất quan trọng đối với tôi vì gmail từ chối gửi thư cho những người tôi không có trong danh sách của tôi. Tôi muốn đăng ký: cả hai, để có thể nhận và gửi tin nhắn.

Trả lời

10

Gửi <presence to="[email protected]" type="subscribe"/>:

conn.send($pres({ to: "[email protected]", type: "subscribe" })); 

Khi người bạn của bạn chấp nhận, họ nên gửi đăng ký bạn cũng có, mà bạn có thể xử lý bằng cách thiết lập một handler khổ thơ cho sự hiện diện đến với loại "đăng ký":

function on_subscription_request(stanza) 
{ 
    if(stanza.getAttribute("type") == "subscribe" && is_friend(stanza.getAttribute("from"))) 
    { 
     // Send a 'subscribed' notification back to accept the incoming 
     // subscription request 
     conn.send($pres({ to: "[email protected]", type: "subscribed" })); 
    } 
    return true; 
} 
conn.addHandler(on_subscription_request, null, "presence", "subscribe"); 
+0

Cảm ơn, đó là chính xác những gì tôi cần. –

+0

@MattJ và phương pháp is_friend whit, bạn có thể cập nhật mã với nó không? – pregmatch

+1

@pregmatch Tùy thuộc vào đơn đăng ký của bạn. Nó nhận được một JID và nên đúng nếu người dùng muốn chấp nhận yêu cầu của họ, hoặc sai nếu họ không. – MattJ

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