2010-03-18 28 views
12

Tôi muốn sử dụng XMPP để đẩy dữ liệu đến khách hàng của mình. sử dụng google-id của họ để đăng nhập vào ứng dụng của tôi. Cách tôi hiểu XMPP là một thông điệp đơn giản của nó đi trực tiếp đến địa chỉ, nhưng tôi muốn khách hàng để làm cho nó như là hướng dẫn và biến nó thành thông tin gamestate.Sử dụng XMPP để thông báo người dùng đẩy trên Android - mọi cách nhắm mục tiêu các thông báo này để họ không truy cập Google Talk, v.v.

Sẽ rất bực bội khi người dùng nhận được một loạt các lệnh tuples hoặc hex rác trong trò chuyện google của họ! Tôi có hiểu lầm cách thức này hoạt động không?

+1

Nếu bạn chạy máy chủ XMPP của riêng mình, bạn sẽ không cần phải cố gắng lấy thông tin đăng nhập Google của chúng và bạn sẽ không gặp phải các vấn đề bạn phác thảo trong câu hỏi này. – CommonsWare

+1

Tôi đang sử dụng khung công cụ ứng dụng – Hortinstein

Trả lời

16

JID (ID Jabber/XMPP và do đó ID Google Talk) có một số biểu mẫu.

đầu tiên là một "JID trần", ví dụ .: [email protected]
Thứ hai là một "đầy JID", ví dụ .: [email protected]/xyz123, nơi xyz123 được gọi là nguồn.

Một người dùng có thể đăng nhập vào tài khoản XMPP của họ từ nhiều khách hàng cùng một lúc, miễn là mỗi khách hàng sử dụng một tài nguyên duy nhất. Với Google Talk, thường máy chủ phân bổ tài nguyên.

Khi bạn nói chuyện với ai đó trên XMPP bình thường, bạn xử lý các tin nhắn bằng cách sử dụng JID — trần mà bạn không quan tâm về thông điệp khách hàng nào được gửi tới; máy chủ của người đó sẽ hướng nó đến (các) khách hàng thích hợp dựa trên tính khả dụng của chúng, v.v.

Nhưng bạn cũng có thể gửi trực tiếp thông báo tới một JID đầy đủ. Đây là những gì bạn muốn làm, để chỉ [email protected]/my-game-some-unique-ID nhận được thông điệp trò chơi cụ thể của bạn.

Dù API Google App Engine cung cấp cho bạn sự linh hoạt này, tôi không có ý tưởng :)


Một thay thế — một lần nữa, nếu GAE cho phép này — là gửi một loại thông điệp khác nhau.
X MPP là e X có thể gập lại, có nghĩa là bạn không phải gửi đơn thuần cũ <message/> stanza cho người dùng cuối; bạn có thể dán một tải trọng chuyên dụng bên trong đó như một đoạn mã con <game/> và, bởi vì khách hàng IM thường xuyên không biết cách phân tích cú pháp của bạn <game/>, chúng không hiển thị gì cho người dùng. Chỉ ứng dụng trò chơi của bạn sẽ phân tích và hiểu thông tin này.

+1

câu trả lời đáng kinh ngạc, tôi thực sự đánh giá cao nó, tôi không có ý tưởng về một trong hai điều này. Cảm ơn một lần nữa! – Hortinstein

+0

Xin lỗi vì nhận xét muộn nhưng tôi đang thử nghiệm tính năng này và Google Talk không hoạt động như tôi mong đợi. Tôi đang gửi thư XMPP tới [email protected]/myownresource và mặc dù đó là tài nguyên tùy chỉnh, Google Talk đang nhận được thư của tôi. Nó không nên, phải không? Liên kết đến câu hỏi của tôi: http: // stackoverflow.com/questions/8524263/google-talk-receiving-messages-với-khác-jid-resource – Rafaesp

1

“Xtify có giải pháp hộp thư chạy một biến thể của XMPP. Sau đó, bạn có thể sử dụng dịch vụ web của họ để đẩy thông báo và dữ liệu tùy chỉnh và ý định vào thiết bị và ứng dụng của bạn. Tôi đã sử dụng nhiều giải pháp tiêu chuẩn hơn (nền tảng để thúc đẩy và quản lý), nhưng API đẩy hoạt động và hoàn toàn miễn phí.

+0

không miễn phí sau khi kiểm tra http://xtify.com/pricing.html – Hunt

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