极光推送总结

极光推送总结,第1张

应用场景:在我们的项目中我们用的是创建视频会议和预警消息通知推送这两种情况,首先创建视频会议和中途邀请人参加会议我采用的是自定义推送消息,因为此应用场景传递的参数比较多,在推送过去之后android和ios可以很方便的将参数传递过去,但是我们考虑到邀请的所有人都在登录状态的时候才可以创建会议房间,我们采用的是腾讯视频会议的sdk,因为我们采用的是别名推送,当用户在登录的时候安卓端将用户uuid设置为别名,退出时取消别名,我在服务端根据传递过来的uuid利用别名查询registration_ids的数组大小是否为空判断当前用户是否设置别名,当邀请的所有人都设置了别名之后我才调用创建会议房间的接口。而预警消息推送我采用的是通知推送,当气象预警触发的时候我会采用通知推送的方式推送给app,这种方式比较简单。

极光推送是给app推送消息的,我们首先需要在服务端集成maven依赖

<!-- 极光推送 -->

    <groupId>cnjpushapi

    <artifactId>jpush-client

    <version>323

</dependency>

接着我们需要了解极光推送有哪些推送方式,对于安卓和ios都适用的情况,我在项目中使用的是别名推送alias,(还有标签推送tag),推送方式又分为通知推送和自定义推送,通知推送能够显示在手机提示框中,而自定义推送却不能,我看安卓他们做的能跟微信视频一样的d出一个会话框,看着挺不错的,这跟微信不同的是可以邀请多个,之前用阿里云的好像只能一对一,所以才换成腾讯视频会议的,好了,废话不多说,上我写的一个工具类,

package comjpxxhomepagehomePageserviceutils;

import cnjpushapiJPushClient;

import cnjpushapipushPushResult;

import cnjpushapipushmodelOptions;

import cnjpushapipushmodelPlatform;

import cnjpushapipushmodelPushPayload;

import cnjpushapipushmodelaudienceAudience;

import cnjpushapipushmodelnotificationNotification;

import cnjpushapipushmodelMessage;

import cnjpushapipushmodelPushPayloadBuilder;

public class SendMessageUtils {

private static StringAppKey="8a7880c6fb81ad494b224078";

    /

    JPush MasterSecret 极光推送平台生成的密钥

    /

    private static StringMasterSecret="c0fc675c4c48f9bf35269cf4";

    //两个参数分别填写你申请的masterSecret和appKey

    private static JPushClientjPushClient=new JPushClient(MasterSecret,AppKey);

    /

    通知推送

    备注:推送方式不为空时,推送的值也不能为空;推送方式为空时,推送值不做要求

    @param type 推送方式:1、“tag”标签推送,2、“alias”别名推送

    @param value 推送的标签或别名值

    @param alert 推送的内容

    /

    public static StringpushNotice(String type,String title,String value,String alert,int roomId,String MessageType,String name,String promoterAdavter,String meetingTitle,String sig){

Builder builder= PushPayloadnewBuilder();

        buildersetPlatform(Platformall());//设置接受的平台,all为所有平台,包括安卓、ios、和微软的

        //设置如果用户不在线、离线消息保存的时间

        Options options=Optionssendno();

        optionssetTimeToLive(86400l);    //设置为86400为保存一天,如果不设置默认也是保存一天

        buildersetOptions(options);

        buildersetMessage(MessagenewBuilder()

setMsgContent(value)

setTitle(title)

addExtra("roomId",roomId)

addExtra("MessageType",MessageType)

addExtra("name",name)

addExtra("promoterAdavter",promoterAdavter)

addExtra("meetingTitle",meetingTitle)

addExtra("userSig",sig)

build());

        //设置推送方式

        if(typeequals("alias")){

buildersetAudience(Audiencealias(value));//根据别名推送

        }else if(typeequals("tag")){

buildersetAudience(Audiencetag(value));//根据标签推送

        }else{

buildersetAudience(Audienceall());//Audience设置为all,说明采用广播方式推送,所有用户都可以接收到

        }

//设置为采用通知的方式发送消息

        buildersetNotification(Notificationalert(alert));

        PushPayload pushPayload=builderbuild();

        Systemoutprintln("ggggggg"+pushPayload);

        try{

//进行推送,实际推送就在这一步

            //Systemoutprintln("zzzzzzzzz "+jPushClientsendPush(pushPayload));

            PushResult pushResult=jPushClientsendPush(pushPayload);

            return "success";

        }catch(Exception e){

Systemoutprintln("异常 "+e);

            eprintStackTrace();

            return "fail";

        }

}

/

    自定义消息推送

    备注:推送方式不为空时,推送的值也不能为空;推送方式为空时,推送值不做要求

    @param type 推送方式:1、“tag”标签推送,2、“alias”别名推送

    @param value 推送的标签或别名值

    @param alert 推送的内容

    /

    public static StringpushMsg(String type,String title,String value,String alert,int roomId,String MessageType,String name,String promoterAdavter,String meetingTitle,String sig){

Builder builder= PushPayloadnewBuilder();

        buildersetPlatform(Platformall());//设置接受的平台

        if(typeequals("alias")){

buildersetAudience(Audiencealias(value));//别名推送

        }else if(typeequals("tag")){

buildersetAudience(Audiencetag(value));//标签推送

        }else{

buildersetAudience(Audienceall());//Audience设置为all,说明采用广播方式推送,所有用户都可以接收到

        }

MessageBuilder newBuilder=MessagenewBuilder();

        newBuildersetMsgContent(alert);//消息内容

        newBuildersetTitle(title);

        newBuilderaddExtra("roomId",roomId);

        newBuilderaddExtra("MessageType",MessageType);

        newBuilderaddExtra("name",name);

        newBuilderaddExtra("promoterAdavter",promoterAdavter);

        newBuilderaddExtra("meetingTitle",meetingTitle);

        newBuilderaddExtra("userSig",sig);

        Message message=newBuilderbuild();

        buildersetMessage(message);

        PushPayload pushPayload=builderbuild();

        try{

PushResult pushResult=jPushClientsendPush(pushPayload);

            Systemoutprintln(pushResultisResultOK());

            return "success";

        }catch(Exception e){

eprintStackTrace();

            return "fail";

        }

}

public static void main(String[] args) {

//给标签为kefu的用户进行消息推送

        //SendMessageUtilspushMsg("alias","标题","5b9022746e284ea0992e3baa983035dc","你有新的任务,请及时处理",111,"meetingType","name","avater","meetingTitle","");

//sendNotificationWirhAlias_Ios("zzzzzzzzzzzz","uuid");

        //String result = SendMessageUtilspushNotice("alias","标题","5b9022746e284ea0992e3baa983035dc","你有新的任务,请及时处理",111,"meetingType","name","avater","meetingTitle","");

        //Systemoutprintln("返回结果"+result);

        /String result = SendMessageUtilspushNotice("alias","预警标题","5b9022746e284ea0992e3baa983035dc","dddd",0,"warnType","","","","");  //userDtogetUuId()

Systemoutprintln("result "+result);/

        //根据uuid查询别名信息是否存在

        String result = >

个推作为国内移动推送领域的早期进入者,于2010年推出个推消息推送SDK产品,十余年来持续为移动开发者提供稳定、高效、智能的消息推送服务,成功服务了人民日报、新华社、CCTV、新浪微博等在内的数十万APP客户。个推消息推送,也是运用的长链接方式实现消息推送的,其长链接稳定性高、存活好,消息送达率高。开发者通过集成个推消息推送SDK,即可简单、快捷地实现Android和iOS平台的消息推送功能,有效提高产品活跃度、增加用户留存。

如果您对个推消息推送感兴趣,欢迎前往个推开发者中心免费注册体验。

个推消息推送工作原理

推送步骤如下:

1、app 将设备的 UUID(苹果设备的唯一标识) 和 app 的 bundled(项目的唯一标识)发送到 APNS(苹果服务器),请求 deviceToken。

2、APNS 在收到 app 发送的请求后,会将加密后的 deviceToken 发送给 app。

3、app 拿到 deviceToken 后,将 deviceToken 传到运营商服务器上。这样以来,运营商就获取了推送权限。

4、当有消息需要推送给某一位用户时,运营商就可以通过客户端对应的 deviceToken 选择推送对象。将推送消息和 deviceToken 一并发送给 APNS。

5、APNS 根据发送过来的 deviceToken ,将推送消息发送到指定的设备上,完成消息的推送工作。

iOS推送选择极光推送,极光推送软件支持的 iOS 版本为 60 及以上版本。支持 iOS 版本为 100 以上的版本。可定制的私有云,对于定制化需求较强的,或者想拥有自己推送平台的开发者,极光提供全功能的私有云方案。

1、极光推送是一种消息推送服务,可以向指定的用户发送消息,而websocket是一种双向通信协议,可以实现客户端与服务器之间的双向数据传输。 2、极光推送是一种单向的消息推送服务,只能由服务器向客户端发送消息,而websocket是一种双向通信协议,可以实现客户端与服务器之间的双向数据传输。 3、极光推送只能用于推送消息,而websocket可以用于实时的数据传输,可以实现实时的数据同步。 4、极光推送只能发送简单的文本消息,而websocket可以发送任意类型的数据,包括文本、、视频等。 请输入内容

以上就是关于极光推送总结全部的内容,包括:极光推送总结、现在流行的消息推送机制是怎么实现的、ios推送,怎么给指定用户推送等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9606485.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存