Using XMPP for push user notifications on Android - any way to target these so they don't go to Google Talk etc

故事扮演 提交于 2019-12-17 18:22:12

问题


I want to use XMPP to push data to my client which would translate to a notification for the user, and plan on using their google-id for login to my application. The way I understand XMPP is that its a simple message that goes directly to the adress, but I want the client to get it as instructions and turn it into gamestate information.

It would be very frustrating for a user to get a bunch of command tuples or hex garbage in their google chat! Am I misunderstanding the way this all works?


回答1:


JIDs (Jabber/XMPP IDs and therefore Google Talk IDs) have several forms.

First is a "bare JID", e.g.: user@example.com
Secondly is a "full JID", e.g.: user@example.com/xyz123, where xyz123 is called the resource.

One user can be logged into their XMPP account from multiple clients simultaneously, so long as each client uses a unique resource. With Google Talk, usually the server allocates the resource.

When you talk to someone on XMPP normally you address messages using their bare JID — you don't care about which client the message gets delivered to; that person's server directs it to the appropriate client(s) based on their availability etc.

But you can also address a message directly to a full JID. This is what you want to do, so that only user@example.com/my-game-some-unique-ID receives your game-specific messages.

Whether the Google App Engine API gives you this flexibility, I have no idea :)


An alternative — again, if GAE allows this — is to send a different message type.
XMPP is eXtensible, meaning that you don't have to send a plain old <message/> stanza to the end user; you can stick a specialised payload inside there like a <game/> child stanza and, because regular IM clients don't know how to parse your <game/> stanzas, they show nothing to the user. Only your game client will parse and understand this info.




回答2:


“Xtify has an out of the box solution that runs a variant of XMPP. You can then use their webservice to push notifications and custom data and intents to the device and your app. I've been using there more standard solution (platform for push and managment), but the push API works and is free.



来源:https://stackoverflow.com/questions/2472617/using-xmpp-for-push-user-notifications-on-android-any-way-to-target-these-so-t

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!