我目前正在升级使用Twilio IPM的实现,以便在之前在npm上使用twilio-chat
包之后使用新的GA版本twilio-ip-messaging
。这些实现之间存在一些差异,但到目前为止,这并不是一个问题。然而,似乎有一些事件行为发生了变化,我很难理解为什么。
在twilio-chat
之前,如果我在浏览器上下文中连接了客户端A,则任何公共频道创建(从另一个客户端B或服务器端)都将从twilio触发channelAdded
事件。这似乎不再发生。在任何后续的getPublicChannelDescriptors
电话中都可以看到新频道,但我没有收到该事件。
是否可以选择加入这些活动?或者以其他方式配置应该向所有连接的客户端公布?
我可以想到一些解决方法,比如宣布新频道创建的命名持久性频道,或者客户端A然后刷新其频道列表的其他“推送”机制,但是当已经存在时,所有感觉都有点脏使用实现相同行为的推送机制。
答案 0 :(得分:0)
Twilio开发者传道者在这里。
可编程聊天SDK中删除了公共频道的channelAdded
事件,因为有多少终端可以订阅单个全局public channels
对象。
你可以receive these events by webhook但是你仍然需要一种方法来通知你的应用程序的客户端。您建议持久通道是一个很好的解决方法。您甚至可以将此频道隐藏起来,并在邮件中发送结构化数据,以便您在界面中显示新频道,并通过SDK请求更多相关数据。
如果整个聊天频道过于苛刻,您还可以尝试在用户之间使用Twilio Sync to synchronise a list个有效频道。
我同意这看起来有点像黑客。所有频道可能会在将来再次引发channelAdded
事件,但我现在无法做出类似的承诺,因此您需要解决此问题。