모바일 PUSH 서비스

모바일 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;
    }