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

Twilio Sync触发TOKEN_EXPIRED服务器断开连接如何解决

Twilio Sync Token过期导致连接断开的解决方案

问题根因

你现有代码的核心错误是tokenAboutToExpire事件触发时,你传入updateToken方法的是localStorage中存储的已经即将过期的旧token,没有重新向后端申请新的有效token,因此刷新操作完全无效,最终服务端还是会因为token过期主动断开连接。

修复步骤

  • 触发token即将过期事件时,不要读取本地缓存的旧token,必须重新请求/dashboard/token接口获取后端新生成的有效token
  • 拿到新token后再调用syncClient.updateToken方法完成刷新,同时更新localStorage中的token缓存
  • 可额外监听tokenExpired事件做兜底兼容,避免因网络波动等问题导致tokenAboutToExpire事件未正常触发时连接直接断开

修正后的代码示例

$.getJSON("/dashboard/token", function (response) {
    console.log(`Token Generated at ${new Date()}`);
    localStorage.setItem('syncToken', response.token);
    
    syncClient = new Twilio.Sync.Client(response.token, { logLevel: "info" });

    // token即将过期事件处理
    syncClient.on('tokenAboutToExpire', function () {
        console.log(`tokenAboutToExpire at: ${new Date()}`);
        // 重新向后端请求新token
        $.getJSON("/dashboard/token", function (newResponse) {
            const newToken = newResponse.token;
            localStorage.setItem('syncToken', newToken);
            syncClient.updateToken(newToken);
            console.log(`Token refreshed at ${new Date()}`);
        });
    });

    // 可选:token已过期兜底处理
    syncClient.on('tokenExpired', function() {
        console.log(`tokenExpired at: ${new Date()}`);
        $.getJSON("/dashboard/token", function (newResponse) {
            const newToken = newResponse.token;
            localStorage.setItem('syncToken', newToken);
            // 过期后如果连接已经断开,优先调用updateToken尝试重连
            syncClient.updateToken(newToken).then(() => {
                console.log('Connection restored after token expiry');
            }).catch(() => {
                // 更新失败的话重新初始化客户端
                syncClient = new Twilio.Sync.Client(newToken, { logLevel: "info" });
            });
        });
    });
});

补充说明

你配置的token有效期172800秒(即48小时)是后端生成token时绑定的过期时间,本地存储的token到期后就会完全失效,无法重复用于刷新操作,必须重新向后端申请新签发的token。

内容的提问来源于stack exchange,提问作者Ghulam Shahbaz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:39:01