2017-09-28 15 views
10

Cách nhận tin nhắn ngoại tuyến trong PubSub? Sử dụng thư viện Smack. sau khi tìm kiếm tôi tìm thấy một câu trả lời mà trông như thế này:Cách quản lý thông báo PubSub gửi trong khi ngoại tuyến trong XMPP?

// Create a pubsub manager using an existing XMPPConnection 
PubSubManager mgr = PubSubManager.getInstanceFor(con); 

// Get the node 
LeafNode node = mgr.getNode("testNode"); 

List<? extends Item> items = node.getItems(100); 

Nhưng node.getItems(100) lợi nhuận 100 tin nhắn cuối cùng, có thể online và offline quá.

1) cách theo dõi thư trực tuyến và ngoại tuyến trong pubsub bằng cách sử dụng smack?

2) có thể nhận được số lượng thư chưa đọc trong pubsub bằng cách sử dụng smack không? nếu có thì làm thế nào để đạt được nó?

3) làm cách nào để biết ai (nhà xuất bản) gửi thư này trong một nút?

Tôi vừa xem tài liệu về Smack và PubSub từ herehere nhưng không tìm thấy giải pháp liên quan đến truy vấn của tôi. Vì vậy, bất cứ ai có thể giúp tôi giải quyết vấn đề này?

Trả lời

3

1) cách theo dõi thư trực tuyến và ngoại tuyến trong pubsub sử dụng smack?

Tôi khuyên bạn nên sử dụng ID mục PubSub.

2) có thể nhận được số lượng thư chưa đọc trong pubsub bằng cách sử dụng không? nếu có thì làm thế nào để đạt được nó?

Nút PubSub không có số lượng tin nhắn chưa đọc đã đăng ký.

Nếu bạn muốn bắt kịp tất cả các mục mới vì bạn nhận được mục cuối cùng từ nút PubSub, bạn thường nhớ ID của mục cuối cùng và sử dụng để truy vấn tất cả các mục mới hơn trên nút PubSub. Thật không may có (hiện tại) không có cách nào để truy vấn nút PubSub cho các mục mới hơn sau một ID nhất định.

Nhưng nếu bạn đã đăng ký một nút thì dịch vụ sẽ thông báo cho bạn về các mục mới ngay cả khi bạn ngoại tuyến. Và nếu máy chủ của bạn lưu trữ các tin nhắn ngoại tuyến đó cho bạn, thì bạn sẽ nhận được chúng cuối cùng.

3) cách biết ai (nhà xuất bản) gửi thư này trong một nút?

Rất tiếc, không có cách nào đáng tin cậy đối với JID của pháp nhân đã xuất bản một mục. Điều này cũng có thể được sửa với XEP mở rộng.

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