모바일 PUSH 서비스
1. ASPN – APPLE PUSH SERVICE
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html
https://blog.serverdensity.com/how-to-build-an-apple-push-notification-provider-server-tutorial/
2. GCM – ANDROID PUSH SERVICE -> 매우 느림
http://developer.android.com/google/gcm/gs.html
3. Android Push Framework
https://code.google.com/p/openmobster/wiki/PushFramework
4. http://aws.amazon.com/ko/sdkforandroid/
5. http://pservicebus.codeplex.com/ -> 심플하게 구현가능
6. http://openpush.im/
7. http://push.io/ -> 유료 푸시 서비스
Monthly Per User
Unlimited push notifications, $0.01 per user per month, minimum $99 per month
Users 10,000
Monthly Cost: $99.00
Per Push
25,000 Pushes $99.00
250,000 Pushes $199.00
1,000,000 Pushes $399.00
8. http://www.lightstreamer.com/?gclid=CIuz3tK07bsCFYZa3godeyoAqg
9. MS – MPNS (MICROSOFT PUSH NITIFICATION SERVICE)
10. SKT – Smart Push (AlwaysOn Management Framework)
import com.google.android.gcm.server.Message; import com.google.android.gcm.server.MulticastResult; import com.google.android.gcm.server.Result; import com.google.android.gcm.server.Sender; String MESSAGE_ID = String.valueOf(Math.random() % 100 + 1); boolean SHOW_ON_IDLE = false; int LIVE_TIME = 1; int RETRY = 2; String simpleApiKey = "(API?)"; String gcmURL = "https://android.googleapis.com/gcm/send"; public String singlePush(String regid, String msg, int articleId) { String rtnMsg = null ; try { Sender sender = new Sender(simpleApiKey); Message message = new Message.Builder() .collapseKey(MESSAGE_ID) .delayWhileIdle(SHOW_ON_IDLE) .timeToLive(LIVE_TIME) .addData("pushMsg", msg) .addData("articleId", Integer.toString(articleId)) .build(); Result result = sender.send(message, regid, RETRY); rtnMsg = result.toString(); } catch (IOException e) { e.printStackTrace(); } return rtnMsg; } public String multiPush(List<String> regid, String msg, int articleId) { String rtnMsg = null ; try { Sender sender = new Sender(simpleApiKey); Message message = new Message.Builder() .collapseKey(MESSAGE_ID) .delayWhileIdle(SHOW_ON_IDLE) .timeToLive(LIVE_TIME) .addData("pushMsg", msg) .addData("articleId", Integer.toString(articleId)) .build(); MulticastResult result = sender.send(message, regid, RETRY); rtnMsg = result.toString(); } catch (IOException e) { e.printStackTrace(); } return rtnMsg; }