我们在语音通信应用中使用Twilio。
进行语音通话时,我们正在设置如下的Twilio设备。 如果呼叫不成功,我们将再次尝试再次呼叫以下功能。
我的问题是不破坏函数删除事件处理程序也是如此?为什么我在日志中看到“[设备]找到现有设备;使用新令牌但忽略选项”当我在调用destroy后调用setup时?
function setupTwilio(token) {
if (angular.isFunction(Twilio.Device.destroy)) {
console.log('Destroying Twilio device');
Twilio.Device.destroy(); // Destroy before setup incase we have already run this
}
startEventHandlers(); // add event handlers for Twilio events e.g. connect, disconnect
trySetup = function () {
var params = { debug: ( DEBUG ? true : false ) };
if (DEBUG) {
console.log('trying the twilio setup at ' + new Date());
console.log(Twilio.Device.instance);
}
// Twilio will not hit the handlers specified in startEventHandlers until a successful setup has been created, so run try catch here
try {
Twilio.Device.setup(token, params);
} catch (e) {
if (DEBUG) {
console.log('TwilioSetup uncaught error: ' + e);
}
}
};
if (angular.isDefined(token)) {
trySetup();
}
}
答案 0 :(得分:1)
Destroy将触发离线事件处理程序。在离线事件处理程序中尝试setting up the device:
Twilio.Device.offline(function() {
Twilio.Device.setup(token, params);
});