浏览代码

声网的三个token

lizhen_gitee 1 年之前
父节点
当前提交
f65b02a451

+ 43 - 0
application/api/controller/Party.php

@@ -15,6 +15,9 @@ use think\Request;
 use app\common\service\RoomService;
 use app\common\library\GatewayworkerTools;
 use app\common\library\Easemob;
+
+require_once EXTEND_PATH . 'shengwang/src/RtcTokenBuilder2.php';
+require_once EXTEND_PATH . 'shengwang/src/RtmTokenBuilder2.php';
 /**
  * 派对信息接口
  */
@@ -260,9 +263,49 @@ class Party extends Common
             $partyInfo["is_new"] = 0;
         }
 
+        //声网三个token
+        $partyInfo['shengwang_token'] = $this->shengwang_token($easemob_room_id,1);
+
         $this->success("获取成功!",$partyInfo);
     }
 
+    //声网3个token
+    public function shengwang_token($easemob_room_id,$return = 0){
+
+        $config = config('shengwang');
+        $appId          = $config['app_id'];
+        $appCertificate = $config['app_zhengshu'];;
+        $channelName = $easemob_room_id;
+        $uid = 0; //任何人都可进入
+        $uidStr = '0';//任何人都可进入
+        $tokenExpirationInSeconds = 86400;
+        $privilegeExpirationInSeconds = 86400;
+
+        //rtc token
+        $rtc_token = \RtcTokenBuilder2::buildTokenWithUid($appId, $appCertificate, $channelName, $uid, \RtcTokenBuilder2::ROLE_PUBLISHER, $tokenExpirationInSeconds, $privilegeExpirationInSeconds);
+
+        //chorus token
+        $chorus_token = \RtcTokenBuilder2::buildTokenWithUid($appId, $appCertificate, $channelName.'_ex', $uid, \RtcTokenBuilder2::ROLE_PUBLISHER, $tokenExpirationInSeconds, $privilegeExpirationInSeconds);
+
+        //rtm token
+        $user = '0';
+        $expireTimeInSeconds = 86400;
+        $rtm_token = \RtmTokenBuilder2::buildToken($appId, $appCertificate, $user, $expireTimeInSeconds);
+
+        $result = [
+            'rtc_token'    => $rtc_token,
+            'chorus_token' => $chorus_token,
+            'rtm_token'    => $rtm_token,
+        ];
+        //dump($result);
+
+        if($result == 1){
+            return $result;
+        }else{
+            $this->success(1,$result);
+        }
+    }
+
 
 
     /**

+ 37 - 0
application/api/controller/Test.php

@@ -4,6 +4,9 @@ namespace app\api\controller;
 
 use app\common\controller\Api;
 use app\common\library\Easemob;
+
+require_once EXTEND_PATH . 'shengwang/src/RtcTokenBuilder2.php';
+require_once EXTEND_PATH . 'shengwang/src/RtmTokenBuilder2.php';
 /**
  * 手机短信接口
  */
@@ -107,4 +110,38 @@ class Test extends Api
 
     //////////////////////////////
 
+
+    //声网3个token
+    public function shengwang_token($easemob_room_id = '230909515202562'){
+
+        $config = config('shengwang');
+        $appId          = $config['app_id'];
+        $appCertificate = $config['app_zhengshu'];;
+        $channelName = $easemob_room_id;
+        $uid = 0; //任何人都可进入
+        $uidStr = '0';//任何人都可进入
+        $tokenExpirationInSeconds = 86400;
+        $privilegeExpirationInSeconds = 86400;
+
+        //rtc token
+        $rtc_token = \RtcTokenBuilder2::buildTokenWithUid($appId, $appCertificate, $channelName, $uid, \RtcTokenBuilder2::ROLE_PUBLISHER, $tokenExpirationInSeconds, $privilegeExpirationInSeconds);
+
+        //chorus token
+        $chorus_token = \RtcTokenBuilder2::buildTokenWithUid($appId, $appCertificate, $channelName.'_ex', $uid, \RtcTokenBuilder2::ROLE_PUBLISHER, $tokenExpirationInSeconds, $privilegeExpirationInSeconds);
+
+        //rtm token
+        $user = '0';
+        $expireTimeInSeconds = 86400;
+        $rtm_token = \RtmTokenBuilder2::buildToken($appId, $appCertificate, $user, $expireTimeInSeconds);
+
+        $result = [
+            'rtc_token'    => $rtc_token,
+            'chorus_token' => $chorus_token,
+            'rtm_token'    => $rtm_token,
+        ];
+        //dump($result);
+        return $result;
+    }
+
+
 }

+ 5 - 0
application/config.php

@@ -378,6 +378,11 @@ return [
         'client_secret' => 'YXA6YXEVRXh4fYSU1X1syg37qiQPeR4',
     ],
 
+    //声网
+    'shengwang' => [
+        'app_id' => '723513dadf714cdeb4e4379c95654865',
+        'app_zhengshu' => '6b066fe9a9fa47d98d4c8fd6f4607033',
+    ],
 
     //app接口加密
     'app_rsa' => [

+ 6 - 0
extend/shengwang/src/RtcTokenBuilder2.php

@@ -112,6 +112,12 @@ class RtcTokenBuilder2
      * set pubDataStreamPrivilegeExpire as the current Unix timestamp.
      * @return The new Token
      */
+
+    //支持你设置 AccessToken2 的过期时间以及以下权限的过期时间:
+    //加入频道
+    //频道内发布音频流
+    //频道内发布视频流
+    //频道内发布数据流
     public static function buildTokenWithUidAndPrivilege($appId, $appCertificate, $channelName, $uid,
                                                          $tokenExpire, $joinChannelPrivilegeExpire, $pubAudioPrivilegeExpire,
                                                          $pubVideoPrivilegeExpire, $pubDataStreamPrivilegeExpire)