消息系統——極光推送http://docs.jiguang.cn/

1、簡介——官方文檔

極光,主要指極光推送,還有IM,短信等其它服務,是國內一家上市公司提供的一個消息推送系統。規模較小不強依賴消息,接收一定延遲及小概率宕機事件可以直接使用免費服務,VIP服務最低約3000/月。集成比較簡單,web,Android,IOS都有對應的sdk和詳細的中文文檔,集成成本較低。原理圖如下,類似websocket,在官網註冊創建應用獲取appKey  masterSecret,可使用sdk內的 api進行用戶管理,消息發送,也可在web控制檯進行,另外web控制檯提供了較全面的管理界面及統計信息。

推送方式:

  1. 廣播(所有人)
  2. 註冊ID(RegistrationID)
  3. 別名(alias)
  4. 標籤(tag,分組)
  5. 用戶分羣(Segment)

 

2.依賴,參考 GITHUB地址

     <dependency>
    <groupId>cn.jpush.api</groupId>
    <artifactId>jpush-client</artifactId>
    <version>3.3.10</version>
</dependency>

3.推送測試

 沒有用戶可使用極光的用戶管理相關API增加用戶,如下:使用alias別名推送方式API推送測試。


import cn.jiguang.common.resp.APIConnectionException;
import cn.jiguang.common.resp.APIRequestException;
import cn.jpush.api.JPushClient;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.AndroidNotification;
import cn.jpush.api.push.model.notification.IosNotification;
import cn.jpush.api.push.model.notification.Notification;
import com.alibaba.fastjson.JSON;

/**
 * Description: TODO
 *
 * @author majun
 * @version 1.0
 * @date 2020-04-07 17:21
 */
public class JpushTest {
    
    public static PushPayload buildAndroidIosPaylod(String alias, String title, String content) {
        return PushPayload.newBuilder()
                .setPlatform(Platform.android_ios())
                .setAudience(Audience.alias(alias))
                .setNotification(Notification.newBuilder()
                        .setAlert(content)
                        .addPlatformNotification(AndroidNotification.newBuilder()
                                .setTitle(title).build())
                        .addPlatformNotification(IosNotification.newBuilder()
                                .incrBadge(1)
                              //.setSound("sound.caf")
//extra 爲透傳字段,不會顯示在通知欄。用戶可以通過此字段來做一些定製需求,如特定的key傳要指定跳轉的頁面(value)

                                .addExtra(title, content).build())
                        .build())
                .build();
    }


    public static void main(String[] args) throws APIConnectionException, APIRequestException {
               JPushClient jpushClient = new JPushClient("XXXXXXXX1818ffXXXXXXXX", "XXXXXXXX1c0abe1XXXXXXXX");
        PushResult result = jpushClient.sendPush(buildAndroidIosPaylod("181112950xx", "my title", "my content"));
        System.out.println(JSON.toJSONString(result));
        
    }
}

 控制檯結果,也可用這裏的【發送通知】手動發送推送

App app需要集成android/ios SDK且在線(既與極光建立長連接,否則看到的極光通道成功數據統計未0,對於不在線的用戶,可以將消息存一份到DB,上線後拉取消息

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章