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

Amity TypeScript SDK异常:初始化客户端报错且login方法不存在

解决Amity TypeScript SDK初始化的"web socket not initialised"错误及login方法不存在问题

问题分析

你当前代码存在两个核心问题:

  1. 异步调用未实际执行:代码里用反引号把await client.mqtt.connect(...)包裹成了字符串,导致这行连接逻辑根本没运行,自然无法初始化WebSocket,触发"web socket not initialised"错误。
  2. API版本不匹配:你参考的文档对应的SDK版本和当前使用的版本不一致,才会出现文档说用login但实际找不到该方法的情况。

修复步骤

1. 修正异步调用的语法错误

去掉包裹await语句的反引号,真正执行连接操作:

import { Client, API_REGIONS } from '@amityco/ts-sdk';

let amity = async () => {
  try {
    const sessionHandler: Amity.SessionHandler = {
      sessionWillRenewAccessToken(renewal: Amity.AccessTokenRenewal) {
        renewal.renew();
      }
    }

    const client: Amity.Client = Client.createClient("API Key", API_REGIONS.EU);
    console.log("client login", sessionHandler)
    // 移除反引号,执行真实的异步连接
    let isConnected = await client.mqtt.connect({ userId: "umar", sessionHandler });
    console.log(isConnected)
  }
  catch (err) {
    console.log(err)
  }
}
export default amity

2. 处理login方法不存在的问题

针对文档与实际API不符的情况,按以下方式处理:

  • 核对SDK版本:查看package.json里@amityco/ts-sdk的版本号,若版本偏低,可尝试升级到文档对应的版本(升级前建议查看版本变更日志,避免兼容性问题)。
  • 沿用当前版本API:如果不想升级,继续使用当前版本的client.mqtt.connect即可,确保语法正确(已在步骤1中修正)。
  • 校验SessionHandler实现:确认sessionHandler的写法符合当前SDK版本要求,避免因回调逻辑错误导致连接失败。

额外提醒

  • 确保API Key和区域(API_REGIONS.EU)配置正确,否则会直接导致连接失败。
  • 异步函数amity()需要被主动调用才能执行初始化流程,记得在合适的位置触发它。

内容的提问来源于stack exchange,提问作者MUHAMMAD Umar MAYO

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:52:48