无法加入聊天频道

时间:2017-06-30 20:26:35

标签: twilio

当我尝试加入我一直在使用的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);
      });
    });
  }

1 个答案:

答案 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...
}

让我知道这是否有帮助。

相关问题