0

我在使用 Twilio iOS 聊天客户端时遇到问题。简而言之,当我尝试创建聊天客户端时,该过程开始但从未完成。我打电话给 TwilioChatClient.chatClientWithToken:properties:delegate:completion:,并且完成永远不会运行。我为聊天客户端提供了一个委托,它的 chatClient:synchronizationStatusUpdated: 函数被调用一次,状态参数设置为 TCHClientSynchronizationStatusStarted,但该函数再也不会被调用。

当我在 Android 上使用相同的令牌(APN 或 FCM 推送凭据除外)创建客户端时,我没有遇到此问题。在我的开发环境中,我在 iOS 或 Android 上也没有这个问题,它使用与我的暂存环境不同的 Twilio 帐户,在那里我看到了这个错误。有人可能会得出结论,我在暂存环境中配置错误,但是,即使是这种情况,我也希望客户端创建以失败状态结束,而不是开始并且永远不会完成。

任何人都可以阐明这个问题吗?我正在使用 iOS Chat 库的 2.0.0 版和 Android 库的 1.0.0 版。

4

1 回答 1

0

我有同样的问题。

我基于 Twilio 的 ChatQuickstart 项目构建了一个并行项目,还启用和配置了推送通知。ChatQuickstart 项目运行良好,并且在后台使用相同的 Twilio 服务和完全相同的 Twilio 框架。

我在我的主项目和 ChatQuickstart 中都设置了 TwilioChatClient.setLogLevel(.debug) 来比较输出。

这是他们彼此偏离的时候。

<<<<TwilioChatClient: 0x6000003e0600>>>> TNWebsocket[4]:     0x7000042e3000 | 10/10/16:04:48.371 | DEBUG    | 5      | TNWebsocket | Receive message 136 bytes
<<<<TwilioChatClient: 0x6000003e0600>>>> TNTwilsockClient[4]:     0x7000042e3000 | 10/10/16:04:48.372 | DEBUG    | 1      | TNTwilsockClient | onMessageReceived (152)
TWILSOCK V3.0 131
{"method":"reply", "id":"5548856787e7426f90d03466e3df84938493", "payload_size":0, "status":{"code":400,"status":"wrong-ers-response"}}

.debug 跟踪表明正在更新连接状态,但没有调用我的委托。

经过进一步调查,我们发现生成的 JWT 令牌使用了无效的 SID 作为推送凭证——在我们的例子中是“Dev”。android SDK 对此没有问题,但 iOS SDK 在这方面更敏感。

便利:确保 iOS 推送凭据的 SID 在构建令牌时有效。

于 2017-10-10T15:07:18.380 回答