Amity TypeScript SDK异常:初始化客户端报错且login方法不存在
解决Amity TypeScript SDK初始化的"web socket not initialised"错误及login方法不存在问题
问题分析
你当前代码存在两个核心问题:
- 异步调用未实际执行:代码里用反引号把
await client.mqtt.connect(...)包裹成了字符串,导致这行连接逻辑根本没运行,自然无法初始化WebSocket,触发"web socket not initialised"错误。 - 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
相关产品推荐
相关产品推荐

