Unable to join chat channel

偶尔善良 提交于 2020-01-05 05:36:08

问题


When trying to join a channel in the twilio code I've been working with, it comes up with the error saying that it "Cannot read property 'getChannelByUniqueName' of null". The chat works but when I try to open it up on a different browser, like firefox instead of chrome, it says the error "Channel with provided unique name already exist". Can anyone help with this problem?

    // 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:


Twilio developer evangelist here.

It looks to me like you aren't passing the chatClient to your joinChannel method (and secondly that the client might not be fully initialised yet).

I would initialise the client with the following, which uses the create method that returns a promise that resolves when the Client is ready.

  // Initialize the Chat client
  new Twilio.Chat.Client.create(data.token).then(function(chatClient) {
    joinChannels(chatClient);
  });
});

Then, make sure you pass the client through to the joinChannel method:

function joinChannels(chatClient) {
  chatClient.getSubscribedChannels();
  joinChannel(chatClient, 'generalss','Generals Chat Channel');
}

function joinChannel(chatClient, channelName, channelFriendlyName) {
  // the rest...
}

Let me know if that helps at all.



来源:https://stackoverflow.com/questions/44854363/unable-to-join-chat-channel

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!