i want to know how do i enable my application to use push notification service.i read the guide but doesn't find it much detailed information about it.Could someone tell me an easy way that how it works,what are the requirements,how do i apply this in my app. one thing i would like to know that according to guide the connection between provider and APNs must be asynchronous,What does it mean? also i read that if we continuously connect and disconnect APNs will block the IP. so what is the minimum time difference to connect to APNs after disconnecting.Please guide me in according to the question.thanks
First off, there are quite a few tutorials out on the net for how to do this.
But here's the basics:
You need a server that is able to connect to the APNs whenever you have notifications for your app.
That server will then connect to the APNs using your Apple supplied SSL cert.
For each messages that you have to send:
a. Create a payload message that your app can do something with.
b. Include the deviceToken for the iPhone you want to send notifications to.
c. Write the raw data (see Apple's docs for specifics on the format) to the socket for each message.
Disconnect from the APNs.
What Apple means by "asynchronous", is that the APNs will not send a response to any of your data acknowledging it. So you need to make sure that whatever networking library you're using to connect can support raw data connections.
I don't think I have seen any published guidelines for minimum time between connections. I think Apple's note is more specifically directed to ensure that you're batching your messages and not flooding the APNs maliciously. I suspect that they'll contact you first if they feel you're overstepping the bounds.
Again, I would suggest a quick Google search on "iphone push notification tutorial" for specifics that can guide you further.
Hope this helps you on your way.
Related
I've implemented muc light on mongooseIM chat server and can say good job to the team as this is exactly what we all wanted in mobiles world of group messaging.
1) Have anyone handled the push notification using this much light. As I have used the mod_zeropush for the single chat can I modify the same for supporting mod muc light as well.
2) Also how to handle mam on client side for the offline message as I understand from docs mod_offline can be used only for single chat and not muc light.
Thanks for any guidance given in advance.
I modified the mod_zero push erl and compiled to support the muc chat light message notifications to send to user.
Also when the user wakes up and he gets the next message from the MUC light I fetch the group info to create the group and link rest messages (hence onwards) to this group.
For the previous messages I used the MAM directions as given in this reference link for fetching the archived message from the server. Provided the server is enabled for muc_light message archive.
I'm currently in the early stages of designing a cross-platform mobile app (iOS, Android, WP8). At its core, the application will allow proximity based interaction between an unknown number of client devices.
Could someone recommend a framework or technology that would allow me to push server generated location based proximity alerts to the clients that even scales well? Could push notifications (cross platform using PushSharp) be a viable option for this, or will Push notifications always go hand in hand with some kind of toast notification on the device?
Update: 30 seconds or even a minute delay should do.
Push Notifications have way to much latency to give you anything near real-time. Also Push Notifications are not guaranteed to reach a device.
You really need to think about how much time constrained the location updates should be. You should also make some tests with how fast the GPS on various devices updates. I have tested on a Nexus 4 and it is not near real-time either. So throughout your entire application whether it is server side or client side you will have things blowing your real-time wishes.
However IF you can live with a delay of a couple of seconds to maybe 30 seconds or more, Push Notifications my work well for you, they also scales quite nicely.
EDIT:
Push notifications always go hand in hand with some kind of toast
notification on the device?
There is a concept called RAW notifications, which allow you to send arbitrary information with the Notifications. However personally I would just notify the client about updates ready on a server, where it then can get all the information the application needs. This is because as I said Push Notifications are not guaranteed to ever reach the device, but also because you are limited to how much information you can embed in the Notifications.
So my suggestion for a flow would be:
Client A updates its location and sends it to a web service
Web Service receives info from Client A and prepares notifications for all the other Clients, which need information about Client A and pushes information about they need to update their info.
Client B receives a Push Notification telling it to refresh data from the Web Service and does that.
That would work well if the application is in a background state. When showing in the foreground I would simply poll a server every second or so; Still receiving Notifications just forcing the client to update.
For the "scales well" part, you might also want to take a look at Windows Azure Service Bus Notification Hubs. It's currently in preview and supports only Windows 8 Store apps and iOS but support for Android and Windows Phone is on the way.
Is there a way to perform async communication between iPhones/IOS devices? I have been researching and thought maybe APN might fill that void, but it sounds like I can't initiate an APN push from an IOS dvice to another, and even if I could I can't trigger the "event" on the other device with just an APN push from what I can identify.
Does anyone have any examples or general advice for IOS device interaction for devices that are not in GameKit (i.e. wifi/bluetooth) range that does not require an intermediate service (urban airship, dedicated server, etc) or will I need to have a 3rd party in order to trigger and/or sync these interactions between devices?
Sorry I don't have any code or details as this is still in the planning phases for me. Any pointers would be greatly appreciated.
The answer is : use a server side app and have all your devices talk to that server.
If you dont want or cannot host an app, you can use a cloud solution based on websocket like Pusher. You can then subscribe to events and post messages with data.
They have an iOS client library
http://pusher.com/docs/client_libraries
P.S: Also have a look at Parse and Stackmob , i remember that had this kind of feature was in their roadmap, but i don't know if it's available yet..
Hope this helps,
Vincent
Presently I'm working on a Windows Phone application that will work in both online and offline mode. So that if the net is available means I need to sync my offline data to the respective server. My requirement is if my app is working and when I reach a wifi-enabled circle (area) I need to get a notification. Otherwise need to race an event.
How can I achieve this? Is there any notification channel present in WP7 to inform about this? If yes please demonstrate some code to achieve the goal.
You can determine if you are connected to a network, you can get the connection type and the phone informs you when it goes on/offline:
NetworkInterface.GetIsNetworkAvailable() checks if you are online or offline
DeviceNetworkInformation tells you more about the network type (Wifi, ...)
NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(OnNetworkChangeHandler); registers a listener to listen for changes
Click here for an example on how to listen for changes. Also very good is this tutorial from MSDN, demonstrating all the goodies mentioned above!
I also recommend reading this blog post as it contains much valuable information about the different APIs.
PS: It is not possible to get a list of all available WLANs around the phone. You can only see the WLAN you are connected to (if). That is a limitation of the Windows Phone API.
The platform does not include support for the "GeoFencing" scenario you describe.
The best solution currently available is to periodically (using a Background Task) check to see if a connection is available and to begin the sync then.
I'm trying to send multiple notifications using my PHP script. But after sending about 50 or so out of the 10k users, I get a broken pipe warning. I'm not sure whether that message is sent.
From various other posts, I learnt that it could be because of a invalid token. However, my feedback service returns no invalid tokens. (ssl://feedback.push.apple.com:2196) Tried this both in production mode and sandbox mode.
What other reasons could cause this invalid pipe issue?
My exact problem is explained here by someone else as well.
http://pastie.org/698787.txt
Apple's servers will drop the connection as soon as there is something wrong in the stream of your push messages.
Be careful with mixing device tokens between sandbox and production modes. There's an article here that describes the issue.
Also, have you tried using the enhanced notification format described in Apple's documentation? The response might tell you what's wrong.