Test.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use app\common\library\Easemob;
  5. require_once EXTEND_PATH . 'shengwang/src/RtcTokenBuilder2.php';
  6. require_once EXTEND_PATH . 'shengwang/src/RtmTokenBuilder2.php';
  7. /**
  8. * 手机短信接口
  9. */
  10. class Test extends Api
  11. {
  12. protected $noNeedLogin = '*';
  13. protected $noNeedRight = '*';
  14. public function testapi(){
  15. if (!$this->apiLimit(10, 1000)) {
  16. //1000毫秒10次
  17. $this->error('休息一下吧');
  18. }
  19. echo '正常结束';
  20. }
  21. //////////////////////////////
  22. //注册用户,放到注册用户里
  23. public function registeruser(){
  24. $easemob = new Easemob();
  25. $rs = $easemob->user_create($this->auth->id);
  26. dump($rs);
  27. }
  28. //创建聊天室
  29. public function createroom(){
  30. $easemob = new Easemob();
  31. $room_id = $easemob->room_create('聊天室名称','聊天室简介',2);
  32. dump($room_id);
  33. }
  34. //获取聊天室详情
  35. public function getroominfo(){
  36. $easemob = new Easemob();
  37. $room_id = 230909536174085;
  38. $rs = $easemob->room_getRoom($room_id);
  39. dump($rs);
  40. }
  41. //修改聊天室
  42. public function updateroominfo(){
  43. $easemob = new Easemob();
  44. $room_id = 230909536174085;
  45. $rs = $easemob->room_updateRoom($room_id,'聊天室名称','聊天室简介');
  46. dump($rs);
  47. }
  48. //强制设置聊天室属性,共100个
  49. //seat1 到 seat 8 为 八个麦位的用户信息
  50. //wait_sing 待唱歌曲列表 无序
  51. //wait_sing_order
  52. public function setmetadata(){
  53. $easemob = new Easemob();
  54. $room_id = 230909536174085;
  55. $owner_id = 4;
  56. $matedata = [
  57. //限量10个
  58. 'seat11' => 666,
  59. 'seat22' => 666,
  60. 'seat33' => 666,
  61. 'seat44' => 666,
  62. 'seat55' => 666,
  63. 'seat66' => 666,
  64. 'seat77' => 666,
  65. 'seat88' => 666,
  66. 'seat99' => 666,
  67. 'seat100' => 666,
  68. ];
  69. $rs = $easemob->room_setRoomCustomAttributeForced($room_id,$owner_id,$matedata);
  70. dump($rs);
  71. }
  72. //获取聊天室属性
  73. public function getmetadata(){
  74. $easemob = new Easemob();
  75. $room_id = 230909515202562;
  76. $key = 'seat1';
  77. $key2 = 'seat2';
  78. //可以一个,可以多个,不能有重复
  79. $keys = [$key,$key2];
  80. //空数组,则全返回
  81. //$keys = [];
  82. $rs = $easemob->room_getRoomCustomAttribute($room_id,$keys);
  83. dump($rs);
  84. //dump($rs[$key]);
  85. //dump($rs[$key2]);
  86. }
  87. //强制删除聊天室属性
  88. public function deletemetadata(){
  89. $easemob = new Easemob();
  90. $room_id = 230909515202562;
  91. $owner_id = 2;
  92. $keys = ['waitsing_list'];
  93. $rs = $easemob->room_deleteRoomCustomAttributeForced($room_id,$owner_id,$keys);
  94. dump($rs);
  95. }
  96. //////////////////////////////
  97. //声网3个token
  98. public function shengwang_token($easemob_room_id = '230909515202562'){
  99. $config = config('shengwang');
  100. $appId = $config['app_id'];
  101. $appCertificate = $config['app_zhengshu'];;
  102. $channelName = $easemob_room_id;
  103. $uid = 0; //任何人都可进入
  104. $uidStr = '0';//任何人都可进入
  105. $tokenExpirationInSeconds = 86400;
  106. $privilegeExpirationInSeconds = 86400;
  107. //rtc token
  108. $rtc_token = \RtcTokenBuilder2::buildTokenWithUid($appId, $appCertificate, $channelName, $uid, \RtcTokenBuilder2::ROLE_PUBLISHER, $tokenExpirationInSeconds, $privilegeExpirationInSeconds);
  109. //chorus token
  110. $chorus_token = \RtcTokenBuilder2::buildTokenWithUid($appId, $appCertificate, $channelName.'_ex', $uid, \RtcTokenBuilder2::ROLE_PUBLISHER, $tokenExpirationInSeconds, $privilegeExpirationInSeconds);
  111. //rtm token
  112. $user = '0';
  113. $expireTimeInSeconds = 86400;
  114. $rtm_token = \RtmTokenBuilder2::buildToken($appId, $appCertificate, $user, $expireTimeInSeconds);
  115. $result = [
  116. 'rtc_token' => $rtc_token,
  117. 'chorus_token' => $chorus_token,
  118. 'rtm_token' => $rtm_token,
  119. ];
  120. //dump($result);
  121. return $result;
  122. }
  123. }