您所指的Role是一个任意结构,用于建立可用于设置权限的可能用户角色的示例层次结构。


如果您查看 Agora Token Builder(Golang 示例),在第 42 行它使用角色分配一组权限。


    if (role == RoleAttendee) || (role == RolePublisher) || (role == RoleAdmin) {

        token.AddPrivilege(accesstoken.KPublishVideoStream, privilegeExpiredTs)

        token.AddPrivilege(accesstoken.KPublishAudioStream, privilegeExpiredTs)

        token.AddPrivilege(accesstoken.KPublishDataStream, privilegeExpiredTs)

    }

在代码中,每个角色都获得相同的权限(这在生产环境中通常没用),因此您需要更新代码以拥有您想要的任何用户角色,以便为该令牌设置适当的权限。


这里设置的权限是为了让 Agora 后端知道用户可以在频道中执行哪些操作,范围从基本joinCahnnel到.publishStreampublishVideoCdn


可用特权:


type Privileges uint16


const (

    KJoinChannel        = 1

    KPublishAudioStream = 2

    KPublishVideoStream = 3

    KPublishDataStream  = 4


    KPublishAudiocdn           = 5

    KPublishVideoCdn           = 6

    KRequestPublishAudioStream = 7

    KRequestPublishVideoStream = 8

    KRequestPublishDataStream  = 9

    KInvitePublishAudioStream  = 10

    KInvitePublishVideoStream  = 11

    KInvitePublishDataStream   = 12


    KAdministrateChannel = 101

    KLoginRtm            = 1000

)

注意:默认情况下不强制执行令牌特权,因此您必须提交 Jira 票证 ( https://agora-ticket.agora.io ) 以请求在您的帐户上启用它。