El tiempo de espera de sincronización de Twilio es 172800
$.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" }); syncClient.on('tokenAboutToExpire', function () { console.log(`tokenAboutToExpire at: ${new Date()}`); var token = localStorage.getItem('syncToken'); syncClient.updateToken(token); }); });Aquí se muestra la consola del navegador Twilio Sync:
Twilsock I: socket opened twilio-sync.js:25304 Twilsock I: refreshing all registrations twilio-sync.js:25304 Twilsock I: update registration for context 8c430fb3-4353-4b06-9cfd-6bebc78582b0Pero después de un tiempo aparecerá este mensaje en el navegador:
Twilsock I: connection has expired Notify I: Transport ready false Twilsock I: connection closed by server, reason is TOKEN_EXPIRED Twilsock I: socket closed CloseEvent¿Alguien puede decirme cómo resolver esto en Twilio Sync Event?
Desarrollador evangelista de Twilio aquí.
El evento que está recibiendo allí es que el token está a punto de caducar, sin embargo, está reemplazando el token por sí mismo. En su lugar, debe solicitar un nuevo token de su back-end y actualizar el cliente con ese nuevo token.
$.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" }); syncClient.on('tokenAboutToExpire', function () { console.log(`tokenAboutToExpire at: ${new Date()}`); $.getJSON("/dashboard/token", function (response) { syncClient.updateToken(response.token); }); }); });Gracias, probé todos los eventos así que aquí lo tengo...
syncClient.on('connectionStateChanged', (newState) => { console.log('Received a new connection state:', newState); if (newState === 'disconnecting') { $.getJSON("/dashboard/token", function (response) { var token = response.token; syncClient.updateToken(token); }); } });