【问题标题】:twilio chat - add user to a channel and receive messagestwilio 聊天 - 将用户添加到频道并接收消息
【发布时间】:2019-10-08 16:30:15
【问题描述】:

我正在为一个应用开发 twilio 聊天功能。

它是这样工作的:- 用户在登录我们的应用程序时实际上已注册到 twilio。 当我在我们的应用中打开聊天模式时,用户也会登录到 twilio

现在,它应该工作的方式是 登录到我们应用程序的用户可以与应用程序上的其他用户聊天 因此为 2 个用户创建了一个唯一频道示例唯一频道名称:UserA1_UserA2 即如果用户 A1(登录用户)想与用户 A2 聊天 唯一频道名称的其他选项是:UserA2_UserA1

用户1创建频道并加入频道后,发送他想发送的消息。

现在,当用户 A2 登录到我们的应用时,他需要加入用户 A1 创建的同一个频道 并且频道名称有两种可能性。即 UserA1_UserA2 或 UserA2_UserA1

所以,当用户A2登录我们的应用程序时,他需要接收用户A1发送的消息

为此,他必须加入用户 A1 创建的同一 twilio 频道,然后才能加载消息。

现在,这就是我卡住的地方。

用户 A2 如何知道用户 A1 或任何其他用户是否向他发送了一些消息 并且他还需要知道他需要加入哪个频道才能加载发送的消息。

它是如何工作的?

有什么办法吗?? 我正在使用 reactjs 构建此功能。

我已经完成了与创建频道和登录 twilio 用户相关的部分 但不确定下一步如何进行。

如果您有任何想法,请告诉我。

我已按照本教程进行操作,并且已经能够使用它从用户 1 发送消息 但是当我使用 user2 登录时无法收到消息

我该怎么做??

https://github.com/philnash/twilio-chat-kendo-react

更新:

使用这个 - this.channel.getMessages().then(this.messagesLoaded);

messagesLoaded 的定义如下:-

messagesLoaded(messagePage) {
    this.setState({
      messages: messagePage.items.map(this.twilioMessageToKendoMessage)
    });
  }

但经过大量研究并再次浏览代码 我发现问题不在于消息的加载 但是

就是找到用户收到消息的频道。

所以,就像我上面解释的那样 假设用户 A 加入频道 UserA1_UserA2 并向用户 A2 发送消息

但是当用户 A2 登录时, 我们如何确定是否有人在某个频道上向他发送了消息 并找出哪个频道。这样他就可以加入该频道并获取消息。

这就是我面临的问题。

【问题讨论】:

  • 当您的用户加入频道时,您使用什么代码来加载消息?
  • 我在上面添加了更多代码。但是,就像我上面解释的那样,问题不在于用户 A 加入频道 UserA1_UserA2 并向用户 A2 发送消息,而是当用户 A2 登录时,我们如何确定是否有人在某个频道上向他发送了消息并找出哪个频道。这样他就可以加入该频道并获取消息。

标签: node.js reactjs twilio twilio-api twilio-programmable-chat


【解决方案1】:

这里是 Twilio 开发者宣传员。

更新:显然我错过了我们文档中准确描述 how to enable push notifications for web through Twilio Video and Firebase 的这一页。

原始答案以及使用户了解以下新消息的其他想法:

Twilio Chat 没有任何固有的功能来通知 Web 用户您的应用程序中有新消息。但是,您可以执行的操作设置为 receive webhooks when new messages are sent to a channel。然后,您可以使用reachability 检查频道中当前未处于活动状态的用户,然后在您的数据库中存储一些内容以针对您的用户说他们有来自该频道的未读消息。然后,当他们登录时,您可以向他们显示他们有未读消息,或者您可以在一段时间后向他们发送警报,例如通过电子邮件,告知他们有未读消息。

让我知道这是否有帮助。

【讨论】:

  • 非常感谢您在这里回答。这很有帮助。关于频道 - 所以你是说,我们需要通过后端来做到这一点?假设 userA1 向 userA2 通道 UserA1_UserA2 发送消息。当用户 A2 登录时,webhook 将被激活。但不会包含频道信息??或者如果收到邀请?基本上,同样的聊天正在使用 sdk 的 android 应用程序版本上运行。他们所做的是创建频道,然后在创建频道后立即将用户 A2 添加到频道。所以我也想做类似的事情,所以我想这是不可能的。如果可能的话,请给我一些指导
  • Webhook 在事件发生时发生,并允许您通过存储数据或在那时通知您的用户来对它们做出反应。另一方面,您可以在用户登录时始终在后台加载聊天,并检查新频道或频道中的新消息,然后通知他们。这完全取决于你。
  • 所以,我可以设置一些东西,当 user2 登录时,他们会在收到邀请或消息时收到通知。对??将不得不看看如何做到这一点谢谢
  • @philnash 当您说:“Twilio Chat 中没有任何固有的功能可以通知网络用户新消息”时,我感到很困惑。在可编程聊天文档中有一个关于推送通知配置 (twilio.com/docs/chat/push-notification-configuration) 的部分,它允许通知新消息和其他事件。这不是一个有效的选择吗?
  • @RyanBuening 该死的,我完全错了,不知道该页面的存在!我必须进一步研究这个?我会更新我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
相关资源
最近更新 更多