当我尝试加入我一直在使用的twilio代码中的通道时,它会出现错误,说它“无法读取属性'getChannelByUniqueName'为null”。聊天工作但当我尝试在不同的浏览器上打开它时,比如firefox而不是chrome,它表示错误“已提供唯一名称的频道已存在”。任何人都可以帮忙解决这个问题吗?
// Initialize the Chat client
chatClient = new Twilio.Chat.Client(data.token);
joinChannels(chatClient);
});
function joinChannels(chatClient) {
chatClient.getSubscribedChannels();
joinChannel('generalss','Generals Chat Channel');
}
function joinChannel(channelName, channelFriendlyName) {
console.log(channelName);
console.log(chatClient);
print('Attempting to join "' + channelName + '" chat channel...');
var promise = chatClient.getChannelByUniqueName(channelName);
promise.then(function(channel) {
console.log('Found ' + channelName + ' channel:');
channels[channelName] = channel;
console.log(channels);
setupChannel();
}).catch(function() {
// If it doesn't exist, let's create it
chatClient.createChannel({
uniqueName: channelName,
friendlyName: channelFriendlyName
}).then(function(channel) {
channels[channelName] = channel;
setupChannel(channelName);
});
});
}
答案 0 :(得分:1)
Twilio开发者传道者在这里。
我认为您没有将chatClient
传递给joinChannel
方法(其次客户端可能尚未完全初始化)。
我将使用以下内容初始化客户端,该方法使用create
方法返回在客户端准备就绪时解析的承诺。
// Initialize the Chat client
new Twilio.Chat.Client.create(data.token).then(function(chatClient) {
joinChannels(chatClient);
});
});
然后,确保将客户端传递给joinChannel
方法:
function joinChannels(chatClient) {
chatClient.getSubscribedChannels();
joinChannel(chatClient, 'generalss','Generals Chat Channel');
}
function joinChannel(chatClient, channelName, channelFriendlyName) {
// the rest...
}
让我知道这是否有帮助。