123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 |
- <?php
- namespace app\common\library;
- use Easemob\Auth;
- use Easemob\Group;
- use Easemob\User;
- use Easemob\Room;
- class Easemob {
- protected $auth;
- protected $room;
- protected $user;
- protected $group;
- public function __construct() {
- //初始化配置
- $easemob_config = config('easemob');
- $appKey = $easemob_config['appkey'];
- $clientIdOrAppID = $easemob_config['client_id'];
- $clientSecretOrAppCertificate = $easemob_config['client_secret'];
- $this->auth = new Auth($appKey,$clientIdOrAppID,$clientSecretOrAppCertificate);
- $this->room = new Room($this->auth);
- $this->user = new User($this->auth);
- $this->group = new Group($this->auth);
- }
- /////////////////////////////////管理用户/////////////////////////////
- //注册用户
- /*
- array(6) {
- ["uuid"] => string(36) "9783ddc0-7eeb-11ee-bbeb-913291843983"
- ["type"] => string(4) "user"
- ["created"] => int(1699526081953)
- ["modified"] => int(1699526081953)
- ["username"] => string(2) "12"
- ["activated"] => bool(true)
- }
- */
- public function user_create($user_id){
- $user_id = '' . $user_id . '';
- $register_data = ['username'=>$user_id,'password'=>123456];
- $rs = $this->user->create($register_data);
- //dump($rs);
- if(isset($rs['code'])){
- return false;
- }
- if(isset($rs['uuid'])){
- return true;
- }
- //默认
- return false;
- }
- /////////////////////////////////管理群组/////////////////////////////
- //创建群组,返回群组id
- public function group_createPublicGroup($user_id,$guild_name,$guild_desc,$maxusers){
- $user_id = ''.$user_id.'';
- $rs = $this->group->createPublicGroup($user_id,$guild_name,$guild_desc,[],$maxusers);
- return $rs;
- }
- //添加一个群组成员
- //$rs === true;
- public function group_addGroupMember($groupId,$user_id){
- $rs = $this->group->addGroupMember($groupId,$user_id);
- return $rs;
- }
- //移除一个群组成员
- public function group_removeGroupMember($groupId,$user_id)
- {
- $rs = $this->group->removeGroupMember($groupId,$user_id);
- return $rs;
- }
- //添加一个管理员
- public function group_addGroupAdmin($groupId,$user_id){
- $rs = $this->group->addGroupAdmin($groupId,$user_id);
- return $rs;
- }
- //移除一个管理员
- public function group_removeGroupAdmin($groupId,$user_id){
- $rs = $this->group->removeGroupAdmin($groupId,$user_id);
- return $rs;
- }
- /////////////////////////////////管理聊天室/////////////////////////////
- //https://docs-im-beta.easemob.com/document/server-side/chatroom.html
- //获取 app 中的聊天室
- /**
- * 获取用户所加入的聊天室
- *
- array(2) {
- [0] => array(3) {
- ["id"] => string(15) "230909536174085"
- ["name"] => string(15) "聊天室名称"
- ["disabled"] => string(5) "false"
- }
- [1] => array(3) {
- ["id"] => string(15) "230909515202562"
- ["name"] => string(15) "888888的房间"
- ["disabled"] => string(5) "false"
- }
- }
- */
- public function room_listAllRoomsUserJoined($user_id){
- $user_id = '' . $user_id . '';
- $rs = $this->room->listAllRoomsUserJoined($user_id);
- return $rs;
- }
- //查询聊天室详情
- /*
- array(14) {
- ["id"] => string(15) "230909515202562"
- ["name"] => string(15) "888888的房间"
- ["description"] => string(15) "888888的房间"
- ["membersonly"] => bool(false)
- ["allowinvites"] => bool(false)
- ["maxusers"] => int(1000)
- ["owner"] => string(1) "2"
- ["created"] => int(1699610874211)
- ["custom"] => string(0) ""
- ["mute"] => bool(false)
- ["affiliations_count"] => int(1)
- ["disabled"] => bool(false)
- ["affiliations"] => array(1) {
- [0] => array(1) {
- ["owner"] => string(1) "2"
- }
- }
- ["public"] => bool(true)
- }
- */
- public function room_getRoom($roomId){
- $rs = $this->room->getRoom($roomId);
- return $rs;
- }
- //创建聊天室
- /*
- string(15) "230821166383116"
- */
- public function room_createRoom($name,$info,$user_id){
- $user_id = '' . $user_id . '';
- $room_id = $this->room->createRoom($name,$info,$user_id,[$user_id],10000);
- return $room_id;
- }
- //修改聊天室信息
- /*
- bool(true)
- */
- public function room_updateRoom($room_id,$name,$description,$maxusers = false){
- $data = [
- 'room_id' => $room_id,
- 'name' => $name,
- 'description'=>$description,
- ];
- if($maxusers !== false){
- $data['maxusers'] = $maxusers;
- }
- $rs = $this->room->updateRoom($data);
- return $rs;
- }
- //删除聊天室
- //获取聊天室公告
- //修改聊天室公告
- //设置聊天室自定义属性
- //获取聊天室自定义属性
- /*
- array(14) {
- ["seat4"] => string(3) "555"
- ["seat3"] => string(3) "555"
- ["seat2"] => string(3) "555"
- ["seat1"] => string(3) "555"
- ["seat8"] => string(3) "555"
- ["sate1"] => string(1) "5"
- ["seat7"] => string(3) "555"
- ["sate2"] => string(1) "6"
- ["seat6"] => string(3) "555"
- ["seat5"] => string(3) "555"
- ["sate3"] => string(1) "7"
- ["seat9"] => string(3) "555"
- ["sate4"] => string(1) "8"
- ["seat10"] => string(3) "555"
- }
- */
- public function room_getRoomCustomAttribute($room_id,$keys){
- $rs = $this->room->getRoomCustomAttribute($room_id,$keys);
- return $rs;
- }
- //删除聊天室自定义属性
- //强制设置聊天室自定义属性
- //初次设置新增,或修改都可用,一次请求的数组大小为10,可多次设置,共100个
- /*
- array(2) {
- ["successKeys"] => array(10) {
- [0] => string(5) "seat1"
- [1] => string(5) "seat2"
- [2] => string(5) "seat3"
- [3] => string(5) "seat4"
- [4] => string(5) "seat5"
- [5] => string(5) "seat6"
- [6] => string(5) "seat7"
- [7] => string(5) "seat8"
- [8] => string(5) "seat9"
- [9] => string(6) "seat10"
- }
- ["errorKeys"] => array(0) {
- }
- }
- */
- public function room_setRoomCustomAttributeForced($room_id,$owner_id,$matedata){
- $owner_id = ''.$owner_id.'';
- //先进入房间
- $rs = $this->room->addRoomMember($room_id,$owner_id);
- //dump($rs);
- //再设置
- $rs = $this->room->setRoomCustomAttributeForced($room_id,$owner_id,$matedata);
- return $rs;
- }
- //强制删除聊天室自定义属性
- /*
- array(2) {
- ["successKeys"] => array(1) {
- [0] => string(5) "sate1" //被删除的keys
- }
- ["errorKeys"] => array(0) {
- }
- }
- //再次删除同一个
- array(2) {
- ["successKeys"] => array(0) {
- }
- ["errorKeys"] => array(1) {
- ["sate1"] => string(33) "properties key sate1 is not exist"
- }
- }
- */
- public function room_deleteRoomCustomAttributeForced($room_id,$owner_id,$keys){
- $owner_id = ''.$owner_id.'';
- $rs = $this->room->deleteRoomCustomAttributeForced($room_id,$owner_id,$keys);
- return $rs;
- }
- ///////////////管理聊天室成员//////////////////
- //分页获取聊天室成员列表
- public function room_listRoomMembers($roomId, $pageSize = 10, $pageNum = 1){
- $rs = $this->room->listRoomMembers($roomId, $pageSize, $pageNum);
- return $rs;
- }
- //添加单个聊天室成员
- //批量添加聊天室成员
- //移除单个聊天室成员
- //批量移除聊天室成员
- public function room_removeRoomMembers($roomId, $usernames){
- $rs = $this->room->removeRoomMembers($roomId, $usernames);
- return $rs;
- }
- //获取聊天室管理员列表
- //添加聊天室管理员
- public function room_promoteRoomAdmin($roomId, $newadmin){
- $newadmin = ''.$newadmin.'';
- $rs = $this->room->promoteRoomAdmin($roomId, $newadmin);
- //dump($rs);
- return $rs;
- }
- //移除聊天室管理员
- public function room_demoteRoomAdmin($roomId, $oldadmin){
- $oldadmin = ''.$oldadmin.'';
- $rs = $this->room->demoteRoomAdmin($roomId, $oldadmin);
- //dump($rs);
- return $rs;
- }
- //////////////////管理黑名单///////////
- //////////////////管理白名单///////////
- //////////////////管理禁言///////////
- }
|