未调用 Twilio 聊天中键入指示器的委托方法
Delegate methods for typing indicator on Twilio chat not being called
正在开发 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 聊天演示应用程序 我得出结论,在 Swift 中委托方法是去吧。
知道这里会发生什么吗?
编辑:正在调用一些(尚未测试全部)其他委托方法,例如 synchronizationStatusUpdated
。
所以毕竟,问题不在 iOS 客户端,而是在我们的访问令牌服务器的实现中。
正如@rbeiter 在他的 comment on GitHub issue 中指出的那样,如果用户身份在两个设备上相同,Twilio 不会发送键入指示符。我在两个设备上正确设置身份以保持不同,但我们的访问令牌服务器忽略了身份参数并使用了硬编码值。因此,从 Twilio 的角度来看,同一用户在两个设备上。修复访问令牌服务器解决了问题。
正在开发 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 聊天演示应用程序 我得出结论,在 Swift 中委托方法是去吧。
知道这里会发生什么吗?
编辑:正在调用一些(尚未测试全部)其他委托方法,例如 synchronizationStatusUpdated
。
所以毕竟,问题不在 iOS 客户端,而是在我们的访问令牌服务器的实现中。
正如@rbeiter 在他的 comment on GitHub issue 中指出的那样,如果用户身份在两个设备上相同,Twilio 不会发送键入指示符。我在两个设备上正确设置身份以保持不同,但我们的访问令牌服务器忽略了身份参数并使用了硬编码值。因此,从 Twilio 的角度来看,同一用户在两个设备上。修复访问令牌服务器解决了问题。