我在检查 channel 名称时总是出错
mChatClient.getChannels().getChannel("one", new CallbackListener<Channel>() {
@Override
public void onSuccess(Channel channel) {
if (channel != null) {
joinChannel(channel);
} else {
mChatClient.getChannels().createChannel("one",
Channel.ChannelType.PUBLIC, new CallbackListener<Channel>() {
@Override
public void onSuccess(Channel channel) {
if (channel != null) {
joinChannel(channel);
}
}
@Override
public void onError(ErrorInfo errorInfo) {
Log.e(TAG,"Error creating channel: " + errorInfo.getErrorText());
}
});
}
}
@Override
public void onError(ErrorInfo errorInfo) {
Log.e(TAG,"Error retrieving channel: " + errorInfo.getErrorText());
}
});
在这个总是会出现错误的 block 中。我可以知道哪里出了问题吗?
最佳答案
你正在做的是:
- 正在检查 channel 是否可用。
- 如果可用,检查 channel 是否为空,如果是,则创建 channel 。
如果您查看代码,您会发现您正在 onSuccess
中进行创建,但是,如果找不到您的 channel ,则永远不会触发 onSuccess
,所以它不会尝试创建 channel 。
您应该做的是在 onError
中创建 channel 。 (未经测试,可能有一些错误):
mChatClient.getChannels().getChannel("one", new CallbackListener<Channel>() {
@Override
public void onSuccess(Channel channel) {
joinChannel(channel);
}
@Override
public void onError(ErrorInfo errorInfo) {
Log.e(TAG,"Error retrieving channel: " + errorInfo.getErrorText());
mChatClient.getChannels().createChannel("one", Channel.ChannelType.PUBLIC, new CallbackListener<Channel>() {
@Override
public void onSuccess(Channel channel) {
if (channel != null) {
joinChannel(channel);
}
}
@Override
public void onError(ErrorInfo errorInfo) {
Log.e(TAG,"Error creating channel: " + errorInfo.getErrorText());
}
});
}
});
关于android - 在 twilio 中获取 channel 名称时出错。我在这里实现一对一聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44515492/