不调用Twilio聊天上键入指示器的委托方法

时间:2018-08-21 09:15:18

标签: ios swift twilio twilio-programmable-chat

正在处理Swift聊天应用程序。 在一个设备上,我加入了一个具有唯一名称"private:chat"的频道,然后在该频道上调用channel.typing()(如docs中所述)。 在另一台设备上,我再次创建一个delegate设置为self的客户端:

TwilioChatClient.chatClient(withToken: token, properties: nil, delegate: self) { (result, chatClient) in
    self.client = chatClient
}

然后我实现了typingStartedOn委托方法来监听频道上的输入。

func chatClient(_ client: TwilioChatClient, typingStartedOn channel: TCHChannel, member: TCHMember) {
    print(">>>>>>>>>>>>> typing on \(channel.uniqueName) by \(member.identity)")
}

但是,即使我确认channel.typing()被另一个设备上的另一个帐户调用,也没有调用委托方法。 JS中的docs内联代码,但是基于iOS chat demo app,我得出的结论是,在Swift中,委托方法是必经之路。

你知道这里会发生什么吗?

编辑:某些(尚未测试过)其他委托方法,例如synchronizationStatusUpdated,被调用。

1 个答案:

答案 0 :(得分:0)

因此,毕竟,问题不在iOS客户端中,而在我们的访问令牌服务器的实现中。

正如@rbeiter在其comment on GitHub issue中指出的那样,如果两个设备上的用户身份相同,则Twilio不会发送打字指示。我在两个设备上都正确设置了身份以使其与众不同,但是我们的访问令牌服务器忽略了identity参数,并使用了硬编码的值。因此,从Twilio的角度来看,两个设备上都使用相同的用户。修复访问令牌服务器可以解决此问题。