PushServer – Node.js server for sending iOS push notifications
github.com
github.com
Works for android as well, and has a nice web interface too.
Works with Apple’s APNs, Google Cloud Messaging and Mozilla’s Simple Push.
Starting up the server without ensuring a connection to mongo seems dangerous, no? https://github.com/jazzychad/PushServer/blob/master/app.js#L...
Basically, you want to listen for the 'open' event and then start the express server... db.once('open', function() { start express here })
A very important future feature would be to handle apns feedback service too (I see that in your TODO). I hear that if you don't enable this, apple will throttle your messages.
The main drawbacks to PushServer seems to be that it's not cross platform, and it doesn't interact with Apple's feedback service. Apple has an ominous warning for people who decide to do this: "APNs monitors providers for their diligence in checking the feedback service and refraining from sending push notifications to nonexistent applications on devices." [1] Though it's unclear what the penalty really is, and this is listed as a TODO item by PushServer [2]
My company decided to build a push notification system in house. We needed it to be cross platform, able to handle very large volumes, and fully follow all of Apple and Google's guidelines. We recently released it as a service for other game developers: https://gamethrive.com
Having built something like this myself and wrestling through the all the edge cases, I've come to the conclusion that unless you have a good reason for doing so, you should outsource sending of push notifications to a 3rd party service. Parse, Urbanairship, and GameThrive (our service) do a good job and are way less expensive than maintaining it yourself, especially if you plan to deliver a high volume or have multiple platforms to deal with.
[1] https://developer.apple.com/library/ios/documentation/Networ...
[2] https://github.com/jazzychad/PushServer/blob/master/TODO.md
Feedback support is coming. Also as noted below, I am familiar with iOS push having built a previous YC startup around it.
Some class of people will want to do it themselves. I am one of those, presumably the audience on HN is full of those ppl, it's why I posted it here. Doing is learning.
If you are looking for more transactional approach to integrate into an existing node app. I've been using node-apn in production for almost a year now. works well.
Best case scenario you have to:
1. Worry about Apple AND Google push notification infrastructure 2. Manage device tokens 3. Forever add one more cron to your life to manage device token invalidation requests for Apple (Is there something similar for Google? I dunno) 4. Gotta keep your certs/keys updated
Yes, you can work around all that stuff. Of course you can, people are doing this after all. But an even better option to me is to spend a small sum and let somebody else worry about these boilerplate systems.
Anyone with experience of either care to comment?
Any app that needs to send custom push notification to individual users needs to have connected the user_id to the device_id. Once you go the Urban Airship route, there is basically no way to do anything useful with push notifications.
Parse seems to be the only 3rd party service that can do something useful, but you would need to use their user/authentication system.