体育万博app下载_manbetx客户端网页版_bet万博网站

功能概述

容联云通讯SDK 提供了群组和讨论组两种形式的群聊功能。群组拥有更多的权限操作,两种群聊形式在共有操作上保持了接口一致。

讨论组类似当前IM聊天应用内的快速多人会话,没有群组的权限操作,适用于快速创建多人会话的场景。每个讨论组只有一个管理员。管理员可以对讨论组进行增减员操作,普通成员也能对群进行增员操作。在添加新成员的时候,并不需要经过对方同意。

群组的功能更加完整和丰富,在权限上也拥有更多的限制(权限分为群主管理员、以及群成员)。可以设定被邀请模式(是否需要对方同意)群组可以拥有讨论组的全部功能,推荐使用群组进行开发。

 注意事项:

 1、创建的群组的时候注意传入的scope参数,基础版默认可传TEMP,专业版可传NORMAL,若需更大人数群组,请联系专有云商务或在控制台吗管理页面进行拓展。 

 2、群组中有三种成员角色,分别是群主、管理员(默认10个,群人数超过10人),普通成员。

 3、群主可以修改,群组信息,群名片,邀请人加入,踢人,解散群组,设置管理员,转让群主,设置群内禁言等。

 4、管理员可以修改群组公告,群名片,邀请人加入,设置群内禁言。

群组和讨论组的详细功能差异对比如下:

功能
讨论组
群组
群容量
IM 专业版 300人/群,最大可扩展至 500 人/群(增值功能)
IM 专业版 300人/群,最大可扩展至 2000 人/群(增值功能)                                                                             
创建
创建时指定群组类型
创建时指定群组类型
群资料属性                                                  
讨论组名,讨论组类型,讨论组公告,讨论组扩展字段,讨论组资料修改,讨论组扩展字段修改
群名,群公告,群扩展字段,
申请加入群组的验证模式,群邀请模式, 群资料修改,群资料扩展字段修改模式
邀请入群
创建时邀请
群主和管理员可以邀请
被邀请人同意模式                                                              
不需要被邀请人同意
支持配置: 需要被邀请人同意 不需要被邀请人同意
申请入群
不支持
支持
群成员类型
群主、普通成员
群主、管理员、普通成员
管理员设置
不支持设置管理员
群主可以增减管理员
群组资料修改权限
群主可以修改
群主,管理员可以设置
修改群成员昵称
管理修改任何人群昵称,普通群成员只能修改自己的昵称
群主、管理员可以修改所有人的群昵称。
普通成员只能修改普通群成员的群昵称。
修改自己的群昵称
支持
支持
消息类型支持
文本,图片,附件,语音等
文本,图片,附件,语音等
踢人
不支持
群主和管理员可以踢人,且管理员不能踢群主和其他管理员
主动退群
普通群所有人都可以退群;
若群主退群,该群第一个加入的人是群主
除群主外,其他用户均可以主动退群。
群主需先将群转让给其他群成员才可以进行退群操作
禁言
不支持
管理员对普通成员禁言、解除禁言
转让群
不支持
群主可以将群的拥有者权限转给群内的其他成员,转移后,
被转让者变为新的群主,原群主变为普通成员。
群主还可以选择在转让的同时,直接退出该群。
解散群
不支持
群主可以解散群

群组消息

群组聊天和单人聊天是相同的,请参考消息收发文档。

群组管理

创建群组

创建群包含创建群组和创建讨论组两种形式。二者的接口接口相同,传入不同的类型参数即可(Target)。

API介绍:

方法名:RL_YTX. createGroup(CreateGroupBuilder, callback, onError) 查看API

对象:CreateGroupBuilder           

代码示例

我们假设Tony要创建一个名为"出彩中国人"(参考Demo中IM. EV_createGroup)

  • //新建创建群组对象
  • var obj = new RL_YTX.CreateGroupBuilder();
  • //设置群组名称
  • obj.setGroupName(“出彩中国人”);
  • //设置群组公告
  • obj. setDeclared(“欢迎体验云通讯体育万博app下载_manbetx客户端网页版_bet万博网站”);
  • //设置群组类型,如:1临时群组(100人)
  • obj. setScope(1);
  • //设置群组验证权限,如:需要身份验证2
  • obj. setPermission(2);
  • //设置为讨论组,该字段默认为2,表示群组,创建讨论组时设置为1
  • obj.setTarget(1);
  • RL_YTX.createGroup(obj, function(obj){
  • //获取新建群组id
  • var groupId = obj.data;
  • //更新页面
  • }, function(obj){
  • //创建群组失败
  • });                                       
  • 主动加入群组 

    只要知道群组id,就可以主动加入群组,讨论组不可以主动加入。             

    关于几种群组的解释:

    公开群组:用户可以直接被允许加入群组,不需要群主或管理员进行验证;

    验证群组:用户加入群组的时候需要群主或管理员同意才可以加入;

    私有群组:只能群主或管理员邀请加入。       

    API介绍

    方法名:RL_YTX. joinGroup(JoinGroupBuilder, callback, onError)查看API

    对象:JoinGroupBuilder

    代码示例

    我们假设"出彩中国人"群组已经有Tony和John两位成员,现在Smith要加入"出彩中国人"群组。

  • //新建加入群组对象
  • var builder= new RL_YTX.JoinGroupBuilder();
  • //设置申请群组id
  • builder.setGroupId(“出彩中国人群组id”);
  • //设置申请理由
  • builder.setDeclared(“申请理由”);
  • //发送请求
  • RL_YTX.joinGroup(builder, function(){
  • //操作成功
  • },function(obj){
  • //操作失败 
  • });    
  • 申请加入群组请求通知          

    注意:                

    如果群组"出彩中国人"是公开群组,则smith直接被允许加入。如果群组"出彩中国人"是私有群组,则smith加入需要群主Tony的的同意。

    接收他人加入操作时,需要设置回调监听,参考文档:

    代码示例

    Tony首先收到Smith加入的请求(参考DEMO中IM. EV_noticeReceiveListener)             

  • //获取群组id
  • var groupId = obj.groupId;
  • //获取群组名称
  • var groupName = obj.groupName;
  • //获取申请者id 
  • var peopleId = obj.member;
  • //获取申请者名称
  • var people = (!!obj.memberName)?obj.memberName:obj.member;
  • //1申请加入群组,2邀请加入群组,3直接加入群组,4解散群组,5退出群组,6踢出群组,7确认申请加入,8确认邀请结果,10管理员修改群组信息,11用户修改群组成员名片
  • var auditType = obj.auditType;
  • if(1 == auditType){
  • //处理申请加入通知
  • }
  • 同意加入群组

    群主或者管理员,可以进行同意他人进群的操作。

    API介绍

    方法名:RL_YTX. confirmJoinGroup(ConfirmJoinGroupBuilder, callback, onError)查看API

    对象:ConfirmJoinGroupBuilder

    代码示例

    Tony同意Smith加入的请求(参考IM. EV_confirmJoinGroup)

  • //新建同意加入请求对象
  • var builder = new RL_YTX.ConfirmJoinGroupBuilder();
  • //设置群组id
  • builder.setGroupId(“出彩中国人群组id”);
  • //设置申请者账号
  • builder.setMemberId(“Smith账号”);
  • //设置同意或拒绝 1拒绝 2同意
  • builder.setConfirm(2);
  • //发送请求
  • RL_YTX.confirmJoinGroup(builder, function(){
  •     //处理成功
  •     }, function(obj){
  •     //处理失败
  •     });
  • 成员加入通知

    Smith加入成功后,群组中成员John收到的通知回调。(参考DEMO中IM. EV_noticeReceiveListener)

    设置回调方法,参考文档:

  • //获取群组id
  • var groupId = obj.groupId;
  • //获取群组名称
  • var groupName = obj.groupName;
  • //获取加入者id
  • var peopleId = obj.member;
  • //获取加入者名称
  • var people = (!!obj.memberName)?obj.memberName:obj.member;
  • //(1申请加入群组,2邀请加入群组,3直接加入群组,4解散群组,5退出群组,6踢出群组,7确认申请加入,8确认邀请结果,10管理员修改群组信息,11用户修改群组成员名片)
  • var auditType = obj.auditType;
  • if(7 == auditType){
  •     //处理某人加入群组通知
  •     }
  • 邀请加入群组 

    群组里只能由群主或管理员邀请别人加入,讨论组里任意用户都可以邀请别人加入,且讨论组邀请时无需对方同意。

    API介绍

    方法名:RL_YTX. inviteJoinGroup(InviteJoinGroupBuilder, callback, onError)查看API

    对象:InviteJoinGroupBuilder

    代码示例

    我们假设"出彩中国人"群组的创建者Tony邀请Smith加入群组(参考Demo中IM.  EV_inviteGroupMember)

  • //新建邀请加入请求对象
  • var builder = new RL_YTX.InviteJoinGroupBuilder();
  • //设置群组id
  • builder. setGroupId(“出彩中国人群组id”);
  • //设置邀请成员账号
  • builder. setMembers([“Smith的账号”]);
  • //是否需要对方确认(1不需要直接加入,2需要)
  • var confirm = 2;
  • builder.setConfirm(confirm);
  • //发送邀请
  • RL_YTX.inviteJoinGroup(builder,function(){
  • //邀请成功
  • if(confirm == 1){
  • //更新页面群组成员列表
  • },function(obj){
  • //邀请成员失败
  • })                  
  • 用户验证管理员邀请加入群组            

    注意:                

    如果Tony邀请Smith加入的时候,接口参数指定不加入需要Smith确认,则Smith直接被邀请加入。如果指定需要Smith同意才能加入,则Smith收到如下通知回调,并在回调里面回复"同意"或"拒绝"加入。设置回调的方法,参考文档:

    (参考DEMO中IM.   EV_noticeReceiveListener)

  • //获取群组id
  • var groupId = obj.groupId;
  • //获取群组名称
  • var groupName = obj.groupName;
  • //获取邀请者id
  • var peopleId = obj.member;
  • //获取邀请者名称
  • var people = (!!obj.memberName)?obj.memberName:obj.member;
  • //(1申请加入群组,2邀请加入群组,3直接加入群组,4解散群组,5退出群组,6踢出群组,7确认申请加入,8确认邀请结果,10管理员修改群组信息,11用户修改群组成员名片)
  • var auditType = obj.auditType;
  • if(2 == auditType){
  •     if(1 == obj.confirm){
  •         //直接加入群组,更新成员列表
  •     }else{
  •         //处理邀请加入群组请求通知
  •          var builder = new RL_YTX.ConfirmInviteJoinGroupBuilder();
  •             //设置邀请者id
  •             builder.setInvitor("邀请者id");
  •             //设置群组id
  •             builder.setGroupId(gruopId);
  •             //1 拒绝,2 同意
  •             builder.setConfirm(2);
  •             RL_YTX.confirmInviteJoinGroup(builder, function(e) {
  •              //处理成功
  •             }, function(obj){
  •             //处理失败
  •             });
  • 邀请加入群组通知

    Smith同意或拒绝加入群组,邀请者会收到的通知回调方法,设置回调参考文档:

    (参考DEMO中IM. EV_noticeReceiveListener)                          

  • //获取群组id
  • var groupId = obj.groupId;
  • //获取群组名称
  • var groupName = obj.groupName;
  • //获取加入成员id
  • var peopleId = obj.member;
  • //获取加入成员名称
  • var people = (!!obj.memberName)?obj.memberName:obj.member;
  • //(1申请加入群组,2邀请加入群组,3直接加入群组,4解散群组,5退出群组,6踢出群组,7确认申请加入,8确认邀请结果,10管理员修改群组信息,11用户修改群组成员名片)
  • var auditType = obj.auditType;
  • if(8 == auditType){
  • if(2 != obj.confirm){
  •     //拒绝管理员邀请,通知页面
  •     }else{
  •     //同意管理员邀请,通知页面
  •     } 
  •   }                 
  • 退出群组

    API介绍

    方法名:RL_YTX. quitGroup(QuitGroupBuilder, callback, onError)查看API

    对象:QuitGroupBuilder

    代码示例

    我们假设Smith要退出群组。(参考DEMO中IM. EV_quitGroup)        

  • //新建退出群组请求对象
  • var builder = new RL_YTX.QuitGroupBuilder();
  • //设置群组id
  • builder.setGroupId(“出彩中国人群组id”);
  • //发送请求
  • RL_YTX.quitGroup(builder, function(){
  •         //退出群组成功
  •         //更新页面
  •         }, function(obj){
  •         //退出群组失败
  •         });
  •                 

    退出群组通知

    Smith退出成功后,群组中成员Tony和John收到的通知回调方法,设置回调参考方法:

     (参考Demo中的IM. EV_noticeReceiveListener) 

  • //获取群组id
  • var groupId = obj.groupId;
  • //获取群组名称
  • var groupName = obj.groupName;
  • //获取退出者id
  • var peopleId = obj.member;
  • //获取退出者名称
  • var people = (!!obj.memberName)?obj.memberName:obj.member;
  • //(1申请加入群组,2邀请加入群组,3直接加入群组,4解散群组,5退出群组,6踢出群组,7确认申请加入,8确认邀请结果,10管理员修改群组信息,11用户修改群组成员名片)
  • var auditType = obj.auditType;
  • if(5 == auditType){
  •     //有用户退出群组,更新列表
  •     }
  • 群主踢人

    只有群主可以进行踢人操作。

    API介绍

    方法名:RL_YTX. deleteGroupMember(DeleteGroupMemberBuilder, callback, onError)查看API

    对象:DeleteGroupMemberBuilder

    代码示例

    我们假设群主Tony要把Smith要踢出群组”出彩中国人”(参考DEMO中IM. EV_deleteGroupMember)。

  • //构建踢出用户请求对象
  • var builder = new RL_YTX.DeleteGroupMemberBuilder(groupId,memberId);
  • builder.setGroupId(“出彩中国人群组id”);
  • builder.setMemberId(“Smith账号”);
  • RL_YTX.deleteGroupMember(builder, function(){
  • //踢出成功
  • },function(obj){
  • //踢出失败
  • });                
  • 移除成员通知

    群组中所有成员除管理员外都会收到的Smith被踢的消息,包括Smith自己,Smith判断被踢用户的id等于自己,则从本地删除群组。设置回调,参考文档:

     (参考Demo中的IM. EV_noticeReceiveListener) :

  • //获取群组id
  • var groupId = obj.groupId;
  • //获取群组名称
  • var groupName = obj.groupName;
  • //获取被踢出者id
  • var peopleId = obj.member;
  • //被踢出者名称
  • var people = (!!obj.memberName)?obj.memberName:obj.member;
  • //(1申请加入群组,2邀请加入群组,3直接加入群组,4解散群组,5退出群组,6踢出群组,7确认申请加入,8确认邀请结果,10管理员修改群组信息,11用户修改群组成员名片)
  • var auditType = obj.auditType;
  • if(6 == auditType){
  •         if(“Smith账号”.equals(“peopleId”)){
  •         //是自己,更新群组列表
  •         }else{
  •         //更新群组成员列表
  •         }}
  • 解散群组

    只有群主才能解散群组,讨论组不能被解散。

    API介绍

    方法名:RL_YTX. dismissGroup(DismissGroupBuilder, callback, onError)查看API

    对象:DismissGroupBuilder

    代码示例

    我们假设群主Tony要解散"出彩中国人"

  • //构建解散群组消息对象
  • var obj = new RL_YTX.DismissGroupBuilder();
  • //设置群组id
  • obj.setGroupId(“出彩中国人群组id”);
  • RL_YTX.dismissGroup(obj, function(){
  •         //解散成功,更新页面
  •         }, function(obj){
  •         //解散失败
  •         });
  • 解散群组通知

    群组中所有成员收到的通知回调。设置回调,参考文档:

    (参考Demo中的IM. EV_noticeReceiveListener) 

  • //获取群组id
  • var groupId = obj.groupId;
  • //获取群组名称
  • var groupName = obj.groupName;
  • //获取操作者id
  • var peopleId = obj.member;
  • //获取操作者名称
  • var people = (!!obj.memberName)?obj.memberName:obj.member;
  • //(1申请加入群组,2邀请加入群组,3直接加入群组,4解散群组,5退出群组,6踢出群组,7确认申请加入,8确认邀请结果,10管理员修改群组信息,11用户修改群组成员名片)
  • var auditType = obj.auditType;
  • if(4 == auditType){
  • //更新页面
  • }
  • 获取群组成员

    API介绍

    方法名:RL_YTX. getGroupMemberList(GetGroupMemberListBuilder, callback, onError)查看API

    对象:GetGroupMemberListBuilder

    代码示例

    (参考Demo中的IM. EV_getGroupMemberList)

  • //新建获取群组成员列表请求对象
  • var obj = new RL_YTX.GetGroupMemberListBuilder();
  • //设置群组id
  • obj.setGroupId(“出彩中国人群组id”);
  • //该接口为分页接口,如果要获取全部数据,设置pageSize为-1
  • obj.setPageSize(-1);
  • //发送请求
  • RL_YTX.getGroupMemberList(obj, function(obj){
  • //成功获取数据,更新页面
  • }, function(obj){
  • //获取数据失败
  • });               
  • 群组搜索

    可以根据群组名字或者群组ID来搜索群组,讨论组不可被搜索。

    API介绍

    方法名:RL_YTX. searchGroups(SearchGroupsBuilder, callback, onError)查看API

    对象:SearchGroupsBuilder

    代码示例

  • //新建群组搜索请求对象
  • var builder = new RL_YTX.SearchGroupsBuilder(type,key);
  • //搜索类型 1 群组id精确查找 2 群组名称模糊搜索
  • builder.setType(1);
  • builder.setKeywords(“出彩中国人群组id”);
  • RL_YTX.searchGroups(builder, function(obj){
  •        //检索成功
  •         },function(obj){
  •        //检索失败
  •         });                
  • 群组免打扰

    群组免打扰功能是指群组收到消息的时候,是否震动手机或振铃(震动或振铃是在应用层处理,通过sdk可以设置此状态并保存在服务端,切换手机时,群组的状态也可同步)。

    API介绍

    方法名:RL_YTX. setGroupMessageRule(SetGroupMessageRuleBuilder, callback, onError)查看API

    对象:SetGroupMessageRuleBuilder

    代码示例

    (参考DEMO中IM.EV_setGroupNotice)

  • //新建设置群组个性化设置对象
  • var builder = new RL_YTX.SetGroupMessageRuleBuilder();
  • //设置群组id
  • builder.setGroupId(“出彩中国人群组id”);
  • //设置免打扰 1提醒 2免打扰
  • builder.setIsNotice(2);
  • RL_YTX.setGroupMessageRule(builder,function(){
  • //设置免打扰成功
  • },function(obj){
  • //设置免打扰失败
  • });
  • 获取个人所在的群组 

    用户登录后,通常首先调取此接口获取自己所在群组,此接口会返回群组的id、名称、免打扰状态等信息。

    API介绍

    方法名:RL_YTX. getGroupList(GetGroupListBuilder, callback, onError)查看API

    对象:GetGroupListBuilder

    代码示例

    (参考Demo中的IM. EV_getGroupList) 

  • //新建获取群组列表请求对象
  • var obj = new RL_YTX.GetGroupListBuilder();
  • //设置获取群组数量,该接口为分页接口,如果要获取全部数据,设置pageSize为-1
  • obj.setPageSize(-1);
  • obj.setTarget(2); //获取群组列表。默认为群组列表,如果要获取讨论组列表,该值传1。
  • RL_YTX.getGroupList(obj, function(obj){
  • //更新页面
  •   }, function(obj){
  •     //获取群组列表失败
  •   });                             
  • 群主转让功能

    API介绍

    方法名:RL_YTX.setGroupMemberRole(SetGroupMemberRoleBuilder, callback, onError)查看API

    对象:SetGroupMemberRoleBuilder

    代码示例

  • /*
  •  *  转让群组 
  •  * @groupId  群组ID
  •  * @member   转让给的成员
  •  * @role     角色     1转让群主  2 设为管理员   3  取消管理员资格  
  •  * */
  •         var roleBuilder = new RL_YTX.SetGroupMemberRoleBuilder();
  •         roleBuilder.setGroupId(groupId);
  •         roleBuilder.setMemberId(member);
  •         roleBuilder.setRole(role);
  •         RL_YTX.setGroupMemberRole(roleBuilder, function() {
  •                 var trobj = $('#pop').find('tr[contact_you="' + member + '"]');
  •                 var tdobj = trobj.children();
  •                 var spanobj = tdobj.children();
  •                 var deleobj = spanobj[3];
  •                 $(deleobj).remove();
  •                 console.log("修改成员角色成功");
  •                 if (role == 1) {
  •                         IM.HTML_pop_hide();
  •                 } else if (role == 2) {
  •                         $(spanobj).eq(0).children("span").text("[管理员]");
  •                         $(spanobj).eq(2).after(' 取消管理员资格 ');
  •                 } else {
  •                         $(spanobj).eq(0).children("span").text("[成员]");
  •                         $(spanobj).eq(2).after(' 设置为管理员 ');
  •                 }
  •         }, function(obj) {
  •                 alert("错误码: " + obj.code + "; 错误描述:" + obj.msg); 
  •                      });