直播网站源码实现消息推送需要怎么做,以PHP为例

最近,关于消息实时推送在很多项目中应用广泛,这样做的好处能实现信息的实时推送,方便对方及时接收消息,加快了消息通知的时效性,提高了工作效率。在众多的消息推送三方中,技术比较成熟完善的有很多,下面,我们就以极光推送为例,来讲讲如何在直播网站源码中集成消息推送功能。

首先,我们找到极光推送的官方文档
http://docs.jiguang.cn/jmessage/server/server_sdk/

我们以php为例介绍下极光IM该如何集成。

通过Git我们可以访问到极光IM的官方demo,我们将sdk文件从Git下载到我们实际的项目中,并记录好文件的访问路径。

我们将消息发送实例整合为一个公共方法,注意方法中API_ROOT.’/…/sdk/jmessage/autoload.php’ 这里要根据自己实际项目里的sdk存放路径进行替换。

    function jMessageIM($test,$uid,$adminName){

        //获取后台配置的极光推送app_key和master_secret

        
        $appKey = "";  //替换为自己申请的极光appkey
        $masterSecret =  "";  //替换为自己申请的极光secret

        if($appKey&&$masterSecret){


            //极光IM
           include_once(API_ROOT.'/../sdk/jmessage/autoload.php');//导入极光IM类库,注意使用require_once和路径写法

            $jm = new \JMessage\JMessage($appKey, $masterSecret); //注意类文件路径写法
            

            //注册管理员
            $admin = new \JMessage\IM\Admin($jm); //注意类文件路径写法
            $nickname="";
            switch($adminName){
                case "goodsorder_admin":
                $nickname="订单管理";
                break;    
            }

            $regInfo = [
                'username' => $adminName,
                'password' => $adminName,
                'nickname'=>$nickname
            ];
            $response = $admin->register($regInfo);
         if($response['body']==""||$response['body']['error']['code']==899001){ //新管理员注册成功或管理员已经存在

                //发布消息
                $message = new \JMessage\IM\Message($jm); //注意类文件路径写法
               $user = new \JMessage\IM\User($jm); //注意类文件路径写法
                $before=userSendBefore(); //获取极光用户账号前缀

                $from = [
                    'id'   => $adminName, //短视频系统规定系统通知必须是该账号(与APP保持一致)
                    'type' => 'admin'
                ];
                $msg = [
                   'text' => $test
                ];
                $notification =[
                    'notifiable'=>false  //是否在通知栏展示
                ];
                $target = [
                    'id'   => $before.$uid,
                    'type' => 'single'
                ];
                $response = $message->sendText(1, $from, $target, $msg,$notification,[]);  //最后一个参数代表其他选项数组,主要是配置消息是否离线存储,默认为true                           
           }

        }

}

    /*极光IM用户名前缀(与APP端统一)*/
	function userSendBefore(){
		$before='msg_';
		return $before;
	}

我们在直播网站源码中调用该方法 即可实现消息的发送。

$title="订单管理";
$uid=10000;
jMessageIM($title,$uid,'goodsorder_admin');

上面就是关于直播网站源码使用极光IM实现消息实时发送的php实例,如果有任何问题或疑问可以一起交流。

你可能感兴趣的:(技术类,java,php,python,thinkphp,android)