0

开发 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 中的文档内联代码,但基于iOS 聊天演示应用程序,我得出结论,在 Swift 中委托方法是要走的路。

知道这里可能会发生什么吗?

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

4

1 回答 1

0

所以毕竟,问题不在于 iOS 客户端,而在于我们对访问令牌服务器的实现。

正如@rbeiter 在他对 GitHub 问题的评论中指出的那样,如果两个设备上的用户身份相同,Twilio 不会发送打字指示符。我在两台设备上都正确设置了身份以保持不同,但我们的访问令牌服务器忽略了身份参数并使用了硬编码值。因此,从 Twilio 的角度来看,同一用户在两个设备上。修复访问令牌服务器解决了这个问题。

于 2018-08-22T07:16:58.363 回答