当前位置: 首页 > article >正文

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的内容格式如下:

"ak": str1,"sk": str2,"token": long_str3,

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

region = "cn-*****-*"
arn = arn:aws:kinesisvideo:[region]:[account-number]:channel/[channel-name]/[number]

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

import boto3ak = 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获取到的信息。

获取到的节点信息为:

https://*-*****.kinesisvideo.cn-*****-*.amazonaws.com.cn
wss://*-*****.kinesisvideo.cn-*****-*.amazonaws.com.cn

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

http://www.lryc.cn/news/2387798.html

相关文章:

  • [图文]图6.3会计事项-Fowler分析模式的剖析和实现
  • [Linux] 利用systemd实现周期性执行任务(DDNS设置案例)
  • maven 3.0多线程编译提高编译速度
  • Dalvik虚拟机、ART虚拟机与JVM的核心区别
  • Unity 3D AssetBundle加密解密教程
  • 【Linux】shell脚本的常用命令
  • Netty应用:从零搭建Java游戏服务器网络框架
  • Pycharm and Flask 的学习心得(9)
  • Linux初始-环境安装(2)
  • Nginx 安全防护与 HTTPS 部署实战笔记
  • Python Day34 学习
  • 【ASR】基于分块非自回归模型的流式端到端语音识别
  • 国芯思辰|国产FRAM SF25C128助力监控系统高效低功耗解决方案,对标MB85RS128/FM25V01
  • 攻防世界逆向刷题笔记(新手模式9-1?)
  • 【golang】能否在遍历map的同时删除元素
  • 制作一款打飞机游戏58:子弹模式组合
  • 使用新一代达梦管理工具SQLark,高效处理 JSON/XML 数据!
  • Qt基础:数据容器类
  • Vue3监听对象数组属性变化方法
  • 深入了解PyTorch:起源、优势、发展与安装指南
  • DeepSeek智能对话助手项目
  • 浅谈Mysql的MVCC机制(RC与RR隔离级别)
  • uniapp-商城-72-shop(5-商品列表,购物车实现回顾)
  • 【git】 pull + rebase 或 pull + merge什么区别?
  • 1. 编程语言进化史与JavaScript
  • Vue3 中 Axios 深度整合指南:从基础到高级实践引言
  • MySQL#Select语句执行过程
  • hbuilder中h5转为小程序提交发布审核
  • 文档注释:删还是不删
  • 【数据结构】单链表练习