代码之家  ›  专栏  ›  技术社区  ›  Milan Nosáľ

未调用Twilio chat上键入指示符的委托方法

  •  0
  • Milan Nosáľ  · 技术社区  · 7 年前

    在一个设备上,我加入一个具有唯一名称的频道 "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)")
    }
    

    但是,委托方法不会被调用,即使我确认 频道。键入() 由另一设备上的另一个帐户调用。这个 文件 JS中的内联代码,但基于 iOS chat demo app 我得出的结论是,在斯威夫特的委托方法是一条路要走。

    知道这里会发生什么吗?

    编辑:一些(尚未测试所有)其他委托方法,例如 synchronizationStatusUpdated ,正在被呼叫。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Milan Nosáľ    7 年前

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

    正如@rbeiter在他的 comment on GitHub issue ,如果两台设备上的用户标识相同,则Twilio不会发送键入指示符。我在两个设备上正确地设置了标识以保持其不同,但是我们的访问令牌服务器忽略了标识参数并使用了硬编码值。因此,从Twilio的观点来看,两台设备上的用户都是相同的。修复访问令牌服务器修复了该问题。