1
votes

I am completely new to XMPP, and have read various websites regarding XMPP. Right now I am considering which server and library is viable to do an iOS IM, and I am feeling confused.

Initially I found a library called XMPPFramework from here, which seems nice since it is actively updating and there are relatively more sources regarding its usage. But when I started to consider the choice for server side (which are mainly ejabberd and Tigase), I found that there is some custom work needed to do if I am going to implement push notification, which is a common feature of IMs.

After searching and browsing through the Internet, I found that people are suggesting that, in order to implement push notification with XMPP (for notifying user which are offline), the protocol XEP-0079 (here) is needed, which I can implement my custom plugin with it. However, I found that XMPPFramework stated above does not support XEP-0079. So the questions are:

  1. Is this mean I will not be able to implement push notification if I choose to use XMPPFramework in my project? Or it is still viable but I will not be able to use the stuffs in XMPPFramework directly while sending messages from iOS clients?

  2. I've also checked about chatting state display (e.g. User A is typing... etc), which people stated is done by XEP-00184, is it possible for me to implement push notification with this protocol instead of XEP-0079?

Since I only started reading about IM and XMPP recently, I guess maybe my questions above may not make sense or are even incorrect, but I am really very confused and need any help available. I tried to find more about how to achieve push notification when recipient user is offline in server side, but most of them just stated an additional plugin is needed and seems there aren't any code example, so I only have a vague image regarding this. Thanks a lot!

Edit: I understand that in order to send push notifications to iOS users I will have to use APNS. But I am not sure about whether I can achieve the goal, which is identifying the messages that are sent to offline users, then forward it tto a custom plugin in the xmpp server, which may involve the protocol XEP-0079, and XMPPFramework seems to not support.

And I am also not sure about how the interception and identification of messages sent to offline users us done, since I can't find similar code examples regarding this. Is there any projects or sites related to this is suitable for beginners?

Thanks again!

1
alanlo@ i too have this same doubt. can you please share the solution u found!Irshad Mohamed

1 Answers

1
votes

You need to read this guide: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction.html

All push messages originate from Apple's servers. If you want to send a push message to a user, your server needs to send the message via this service.