【问题标题】:Unable to join chat channel无法加入聊天频道
【发布时间】:2017-06-30 20:26:35
【问题描述】:

当我尝试在我一直使用的 twilio 代码中加入频道时,它会出现错误,指出它“无法读取属性 'getChannelByUniqueName' of 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);
      });
    });
  }

【问题讨论】:

  • 你在哪里设置chatClient?您能否分享更多代码以显示您在哪里设置客户端以及如何调用此函数?
  • @philnash 我刚刚更新了我在问题中显示的代码以显示 chatClient

标签: twilio


【解决方案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...
}

让我知道这是否有帮助。

【讨论】:

  • 嗨,是的,这有帮助。谢谢
  • 太棒了,如果它解决了您的问题,请将其标记为正确,以便其他人也可以看到。谢谢!
  • 我想知道如何根据已经创建的用户实例化一个新客户端
  • 为用户生成访问令牌并使用new Twilio.Chat.Client.create(token) 实例化新用户。
  • 我希望能够创建一个用户,而不是在我登录时总是创建一个新用户,我希望能够再次登录到特定用户。我将如何处理@philnash
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 2013-07-23
  • 2019-11-18
相关资源
最近更新 更多