AWS WebRTC:获取信令服务节点和ICE服务节点

建立WebRTC的第一步是获取信令服务节点和ICE服务节点。

前提条件是有访问AWS的密钥,主要是ak,sk,token,我这边是业务云有接口可以返回这些信息,所以我直接从业务云获取。

先介绍一下什么是ak,sk,token:

ak,AWS_ACCESS_KEY_ID,AWS访问密钥;

sk,AWS_SECRET_ACCESS_KEY,AWS安全访问密钥;

token,AWS_SESSION_TOKEN,会话令牌,即临时凭证,最长有效期是12小时(43200秒)

它们三个是什么关系?

比如一个人进入一栋大楼,首先需要有进入大楼的许可就是ak;进入大楼后需要进行安检就是sk;进入大楼后不能一直在大楼里呆着需要有一个停留时间,就是session token。

ak,sk,token的内容格式如下:

python 复制代码
    "ak": str1,
    "sk": str2,
    "token": long_str3,

除了密钥信息外,还需要region和arn,这两个也是业务云返回,内容格式如下:

python 复制代码
region = "cn-*****-*"
arn = arn:aws:kinesisvideo:[region]:[account-number]:channel/[channel-name]/[number]

有了这些信息后就可以通过boto3获取信令服务节点和ICE服务节点了:

python 复制代码
import boto3

ak = str1
sk = str2
token = long_str3
region = "cn-*****-*"
arn = arn:aws:kinesisvideo:[region]:[account-number]:channel/[channel-name]/[number]

session = boto3.Session(
    aws_access_key_id=ak,
    aws_secret_access_key=sk,
    region_name=region,
    aws_session_token=token
)

client = session.client('kinesisvideo')

response = client.get_signaling_channel_endpoint(
    ChannelARN=arn,
    SingleMasterChannelEndpointConfiguration={
        'Protocols': ['WSS', 'HTTPS'],
        'Role': 'VIEWER'
    }
)

endpoint_https = response["ResourceEndpointList"][0]["ResourceEndpoint"]
endpoint_wss = response["ResourceEndpointList"][1]["ResourceEndpoint"]

print(response)
print(endpoint_https)
print(endpoint_wss)

以上相关信息替换成从aws获取到的信息。

获取到的节点信息为:

python 复制代码
https://*-*****.kinesisvideo.cn-*****-*.amazonaws.com.cn
wss://*-*****.kinesisvideo.cn-*****-*.amazonaws.com.cn

这两个节点各有自己的用处,后面慢慢讲解。

相关推荐
红米饭配南瓜汤2 天前
WebRTC 发送端 SSRC 生成流程总结
网络·网络协议·音视频·webrtc·媒体
小柯博客2 天前
从零开始WebRTC(一)
stm32·单片机·嵌入式硬件·青少年编程·嵌入式·webrtc
Paraverse平行云6 天前
实时云渲染云推流突破UE像素流传输数据单个消息64KB限制
云计算·webrtc·unreal engine
MagicSakuraD13 天前
LiveKit 的核心概念
webrtc
RTC老炮18 天前
webrtc弱网-AlrDetector类源码分析与算法原理
服务器·网络·算法·php·webrtc
不会吃萝卜的兔子19 天前
go webrtc - 2 webrtc重要概念
webrtc
ayaya_mana19 天前
BilldDesk:基于Vue3+WebRTC+Nodejs+Electron的开源远程桌面控制
electron·开源·webrtc
她超甜i20 天前
前端通过后端给的webrtc的链接,在前端展示,并更新实时状态
前端·javascript·webrtc
计算机小手21 天前
高效 P2P 文件传输工具:FileSync 利用 WebRTC 技术实现极速安全传输
经验分享·docker·webrtc·开源软件
AI码上来22 天前
当小智 AI 遇上数字人,我用 WebRTC 打造实时音视频应用
人工智能·webrtc·实时音视频