通过 AOQ、WebRTC 或 WebSocket 接入模型的完整流程
介绍如何通过 AOQ、WebRTC、WebSocket 三种协议接入 Realtime API 模型,包含各协议的连接流程、时序图和代码示例。
AOQ 基于 QUIC 协议深度定制,适合移动端原生应用,支持音频/视频/数据混合传输,内置极致抗弱网能力。以下以 iOS Demo 为例。
实现
由业务 AppServer 代理千问 AI 平台请求,参考 Token 鉴权章节。
设置编解码参数后调用
连接成功后发送
收到模型回复
WebRTC 协议不提供 SDK,Web 端可以通过 JavaScript,其他端可以通过开源项目或者第三方支持标准 WebRTC 协议的 RTC 服务商进行接入。以下文档以 Web 端 JavaScript 为例进行介绍。
监听模型返回的 DataChannel 消息保证交互时序:
建连时添加的音频轨道和视频轨道(即 RTP 媒体通道)会自动将数据传输到服务端。
新建一个 HTML 文件,命名为
可以通过 DashScope SDK 或者模型的 API 进行接入,详见:
AOQ 接入
AOQ 基于 QUIC 协议深度定制,适合移动端原生应用,支持音频/视频/数据混合传输,内置极致抗弱网能力。以下以 iOS Demo 为例。
整体流程时序图

创建引擎并设置回调
AoqEngineDelegate 协议监听 onConnectionStatusChange、onDataMsg、onError 等回调。
启动音频采集与播放
获取连接凭证
由业务 AppServer 代理千问 AI 平台请求,参考 Token 鉴权章节。
设置编解码及建立连接
设置编解码参数后调用 connect:
AOQ SDK 在建联后会默认发送媒体数据,此示例演示了连接模型时关闭媒体发送的能力。
配置 AI 会话
连接成功后发送 session.update 的示例,详见模型客户端事件参考:
收到 session.updated 后开启媒体发送
收到模型回复 session.updated 的示例,详见模型服务器事件参考:
- 模型必须在收到
session.updated后才开启媒体流发送,否则 AI 侧可能还未准备好接收数据。 - 建连时添加的音频轨道和视频轨道(即 AOQ 媒体通道)会自动将数据传输到服务端。
- 音频:通过音频轨道直接传输,无需发送
input_audio_buffer.append事件。 - 视频:通过视频轨道发送画面帧,无需发送
input_image_buffer.append事件。
- 音频:通过音频轨道直接传输,无需发送
断开连接与销毁引擎
WebRTC 接入
WebRTC 协议不提供 SDK,Web 端可以通过 JavaScript,其他端可以通过开源项目或者第三方支持标准 WebRTC 协议的 RTC 服务商进行接入。以下文档以 Web 端 JavaScript 为例进行介绍。
整体流程图

建立连接
配置目标模型参数
监听模型返回的 DataChannel 消息保证交互时序:
收发媒体数据
建连时添加的音频轨道和视频轨道(即 RTP 媒体通道)会自动将数据传输到服务端。
- 音频:通过音频轨道(RTP)直接传输,无需发送
input_audio_buffer.append事件。 - 图片:通过视频轨道(RTP)发送画面帧,不支持
input_image_buffer.append事件。
WebRTC 仅支持服务端 VAD 模式(
server_vad 或 semantic_vad),不支持手动模式。Demo 源码
前提条件
- 使用支持 WebRTC 的现代浏览器(Chrome、Edge、Firefox、Safari 等)。
- 浏览器需要麦克风权限。
- 浏览器无法直接向服务端发起建立连接的请求(受浏览器跨域安全策略限制),因此需要通过终端执行 curl 命令来完成连接建立。
运行示例
新建一个 HTML 文件,命名为 webrtc_demo.html,并将以下代码复制到文件中:
webrtc_demo.html。
在浏览器中打开此文件,按以下步骤操作:
- 点击开始会话,页面会自动生成 Offer SDP 和对应的 curl 命令。
- 点击复制 curl 命令,在终端中执行。命令返回的内容即为 Answer SDP。
- 将 Answer SDP 粘贴到页面的 Answer SDP 文本框中,点击设置 Answer 即可建立连接并开始语音对话。