Test.php 4.1 KB

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