正在处理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
,被调用。
答案 0 :(得分:0)
因此,毕竟,问题不在iOS客户端中,而在我们的访问令牌服务器的实现中。
正如@rbeiter在其comment on GitHub issue中指出的那样,如果两个设备上的用户身份相同,则Twilio不会发送打字指示。我在两个设备上都正确设置了身份以使其与众不同,但是我们的访问令牌服务器忽略了identity参数,并使用了硬编码的值。因此,从Twilio的角度来看,两个设备上都使用相同的用户。修复访问令牌服务器可以解决此问题。