From 55f05c88b5c85d46c156119a0346f09b68efd88f Mon Sep 17 00:00:00 2001 From: chenweijian <820961417@qq.com> Date: Wed, 29 Mar 2023 16:47:35 +0800 Subject: [PATCH] trtc --- _const/enum/group_e/enum.go | 8 ++++++++ cv/group_cv/group.go | 1 + domain/service/group_s/group_op.go | 9 +++++++-- route/group_r/group_op.go | 8 +++++++- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/_const/enum/group_e/enum.go b/_const/enum/group_e/enum.go index 10f7c5b..2e9b2b0 100644 --- a/_const/enum/group_e/enum.go +++ b/_const/enum/group_e/enum.go @@ -156,3 +156,11 @@ var GROUP_NOBLE4_JOIN_LIMIT uint = 1000 var GROUP_ROLE_PERSONAL_VIEW_LIMIT = 5 var GROUP_MANAGER_LIMIT uint = 30 var GROUP_ADMIN_LIMIT uint = 50 + +type GroupProvider = uint8 + +const ( + // 群组声音供应商 + GroupProvider_SW GroupProvider = 1 // 声网 + GroupProvider_TRTC GroupProvider = 2 // 腾讯trtc +) diff --git a/cv/group_cv/group.go b/cv/group_cv/group.go index 4661d4b..28cb11b 100644 --- a/cv/group_cv/group.go +++ b/cv/group_cv/group.go @@ -221,6 +221,7 @@ type GroupChannelId struct { Token string `json:"token"` AgoraId uint32 `json:"agoraId"` MicNumType uint8 `json:"micNumType"` + Provider uint8 `json:"provider"` // 供应商 1.声网 2.腾讯trtc } //国籍视图 diff --git a/domain/service/group_s/group_op.go b/domain/service/group_s/group_op.go index c547f75..bb394ed 100644 --- a/domain/service/group_s/group_op.go +++ b/domain/service/group_s/group_op.go @@ -11,6 +11,7 @@ import ( "git.hilo.cn/hilo-common/rpc" "git.hilo.cn/hilo-common/sdk/agora" "git.hilo.cn/hilo-common/sdk/tencentyun" + "git.hilo.cn/hilo-common/sdk/trtc" "git.hilo.cn/hilo-common/utils" "gorm.io/gorm" "hilo-group/_const/enum/group_e" @@ -115,7 +116,7 @@ func (s *GroupService) LeaveGroupMember(model *domain.Model, groupId string, use } //进入房间, 返回channelId, err -func (s *GroupService) GroupIn(userId uint64, externalId string, groupUuid string, password, imei, ip string) (string, string, error) { +func (s *GroupService) GroupIn(userId uint64, externalId string, groupUuid string, password, imei, ip string, provider group_e.GroupProvider) (string, string, error) { var channelId string var token string err := s.svc.Transactional(func() error { @@ -171,7 +172,11 @@ func (s *GroupService) GroupIn(userId uint64, externalId string, groupUuid strin if err != nil { return err } - channelId, token, err = agora.CreateGroupAgora(groupInfo.ChannelId, uint32(userId)) + if provider == group_e.GroupProvider_TRTC { + token = trtc.CreateGroupTRTCUserSig(userId) + } else { + channelId, token, err = agora.CreateGroupAgora(groupInfo.ChannelId, uint32(userId)) + } if err != nil { return err } else { diff --git a/route/group_r/group_op.go b/route/group_r/group_op.go index bb62b80..8fda944 100644 --- a/route/group_r/group_op.go +++ b/route/group_r/group_op.go @@ -1751,7 +1751,12 @@ func GroupIn(c *gin.Context) (*mycontext.MyContext, error) { } model.Log.Infof("GroupIn ip userId:%v,imGroupId:%v,ip:%v,imei:%v", userId, groupId, ip, imei) - if channelId, token, err := group_s.NewGroupService(myContext).GroupIn(userId, externalId, groupId, password, imei, ip); err != nil { + provider := group_e.GroupProvider_SW + if gi.Code == "70740667" { + provider = group_e.GroupProvider_TRTC + } + + if channelId, token, err := group_s.NewGroupService(myContext).GroupIn(userId, externalId, groupId, password, imei, ip, provider); err != nil { return myContext, err } else { // 加入房间缓存 @@ -1767,6 +1772,7 @@ func GroupIn(c *gin.Context) (*mycontext.MyContext, error) { Token: token, AgoraId: uint32(userId), MicNumType: gi.MicNumType, + Provider: provider, }) // v2.26及以后,客户端自己加TIM群,不再由服务器代加 -- 2.22.0