You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AgoraRTM SDK构建RTM应用遇调用错误求助

解决AgoraRTM createInstance is not a function 及类调用错误问题

问题根源

  • SDK版本与API调用不匹配(v1和v2版本API差异显著)
  • SDK脚本未正确加载(Django静态文件路径配置错误)
  • 错误的实例化方式(比如v1版本未使用new关键字)

分步解决方案

1. 确认SDK版本并匹配对应API

Agora RTM Web SDK分为v1.x和v2.x两个主要版本,API完全不同:

  • v2.x版本(推荐使用):使用AgoraRTM.createInstance()创建客户端实例
  • v1.x版本:需要通过new AgoraRTM.RTM()实例化类(不能直接调用类作为函数)

2. 确保SDK脚本正确引入(Django环境下)

在HTML模板中利用Django静态文件标签正确引入SDK,避免路径错误:

<!-- 引入v2.x SDK -->
<script src="{% static 'js/agora-rtm-sdk.js' %}"></script>
<!-- 或者引入v1.x SDK -->
<script src="{% static 'js/agora-rtm-sdk-v1.js' %}"></script>
  • 检查settings.py中的静态文件配置是否正确:
    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        BASE_DIR / "static",
    ]
    
  • 打开浏览器开发者工具的Network标签,确认SDK脚本返回200状态(无404错误)

3. 修正代码示例

针对v2.x SDK的正确代码

const APP_ID = '你的Agora APPID';
const TOKEN = '你的RTM Token'; // 测试可使用临时Token,生产环境需由服务器生成
const USER_ID = '唯一用户ID';

let rtmClient;

async function startRtm() {
    try {
        // v2.x 正确实例化方式
        rtmClient = AgoraRTM.createInstance(APP_ID);
        await rtmClient.login({ token: TOKEN, uid: USER_ID });
        console.log('AgoraRTM 登录成功');
    } catch (err) {
        console.error('登录错误:', err);
    }
}

startRtm();

针对v1.x SDK的正确代码

const APP_ID = '你的Agora APPID';
const TOKEN = '你的RTM Token';
const USER_ID = '唯一用户ID';

let rtmClient;

async function startRtm() {
    try {
        // v1.x 必须用new关键字实例化类
        rtmClient = new AgoraRTM.RTM(APP_ID);
        await rtmClient.login(TOKEN, USER_ID);
        console.log('AgoraRTM 登录成功');
    } catch (err) {
        console.error('登录错误:', err);
    }
}

startRtm();

4. 额外排查点

  • 确认APP_ID、TOKEN、USER_ID无拼写错误或多余空格
  • 测试环境中如果没有Token,可传入null(仅适用于开启「APP内用户免鉴权」的项目)
  • 确保网页运行在HTTPS或localhost环境(Agora SDK限制非安全域名下的功能)

内容的提问来源于stack exchange,提问作者George DA Silver Ajadhugan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 03:35:58