0

在我的应用程序中,我实现了一个带有 socketio 后端的聊天功能。所有对话都分组在如下视图中:

在此处输入图像描述

静默通知是处理此屏幕更新的最佳方式吗?

当我向用户发送消息时,我还收到了由 nodejs 服务器发送的“警报”通知。

如何处理这两个通知,如果用户允许通知,如果应用程序在前台,后台等。

现在有点混乱,所以如果你对这个话题有一些解释,也许这不是正确的方法,谢谢。

4

1 回答 1

1

您没有理由对消息进行静默通知。当应用程序不在前台时,您可以发送正常(非静音)通知或仅根据您想要的内容发送静音通知。

当不在前台时,静默将在您的情况下被丢弃,非静默将可由用户按下,如果按下,则应导航到应用程序内的适当屏幕。

在您提到的屏幕上时,最好获取通知并仅处理这些通知。通知可能已经包含显示消息所需的所有数据,但有两个事实:

  1. 通知可能有点前卫,可能根本不会到达。我个人没有经历过,但这是我听到的。
  2. 通知的大小有限,因此可能不包含长消息或图像等大型数据集

话虽如此,您有时需要从服务器手动获取数据。因此,当在这样的屏幕上时,最好简单地忽略通知并尝试每隔几秒钟获取一次数据。一个智能算法在这里会很好,如果用户来到这个屏幕或收到通知,它会将获取频率重置为一个小频率(每 3 秒更新一次),然后如果没有事件发生,例如 30 秒开始下降,以减少调用服务器。

你总是可以反过来做。您可以使用非常低的频率手动获取数据(例如 1 分钟),以便在通知失败时进行后备。然后在每次收到通知时获取数据。您确实必须再次偷偷摸摸,因为如果开始收到许多通知,您将再次对服务器进行太多调用。因此,您需要以某种方式锁定对服务器的调用,或者您可以在通知中发送“预览”数据并仅显示该数据。这意味着您将只发送一个前缀而不是完整的消息,并显示“嗨,你好吗...”或图像“给您发送了一张照片”...

另一个问题(仅显示来自通知的数据)是当您的设备数据不足时事情可能会变得复杂。想象一下,你有 5 个朋友/对话,突然从第 6 个朋友那里传来一条通知,它刚刚与你联系。你没有办法在你的视图中显示这个,因为你没有这个人的名字,没有图像,根本没有数据......所以你需要再次建立一个好的架构,以便根据需要从服务器检索这些数据.

于 2018-03-16T13:18:43.540 回答