我正在Kotlin开发一个Android应用程序,可以认为它类似于Instagram。
我正在设计如何实现我的应用程序内通知。“应用程序内通知”我的意思是互动,如喜欢,出版物分享,新的聊天消息,等等。
目前,我希望前台通知。通知不会涉及任何视图组件。
建议的流程为:
1.来自Client_1的交互动作(例如,共享、消息)触发服务器中的Event_A。
- Event_A产生状态更改并向Client_2生成通知。
- Client_2收到通知
a.在通知图标列中显示标记。
B.当Client_2打开通知列表时,在通知列表中生成一个新项目。
我做这个澄清是因为,在搜索这个的时候,我看到“应用内通知”与活动、宣传、新功能等有关。
到目前为止,我考虑了两种可能的实现,但不确定它们是否正确。
1 - Web套接字
我的应用程序已经使用Web套接字来处理聊天消息。但是,到目前为止,只有当用户进入聊天视图时,连接才会打开。
我认为这很容易实现,但这意味着用户在应用程序上的整个时间都有一个开放的连接,这可能是服务器的一个不必要的负载,并增加了Web Socket的时间会话。
2 - SNS + FCM
我发现AWS SNS和FCM(Firebase Cloud Messaging)是处理通知的常用方法。
然而,阅读Firebase的文档和示例,我了解到它主要用于其他类型的应用程序内通知(活动、宣传、新功能等)。
在本FCM文档中,它定义了两种类型的消息:Notification Messages
和Data Messages
。我知道,Data Messages
更适合我的用例。
不知道配置FCM和处理令牌生命周期的复杂性是否值得。
“我的问题是”
- 以上场景是好的方法吗?还有其他方法可以实现吗?
- 以下哪一项是此类通知的正确术语?
1条答案
按热度按时间zkure5ic1#
FCM只是普通的推送消息。它可以用于任何类型的数据。它只是服务器将数据推送到应用程序的一种通用方法,即使应用程序目前没有运行。所以这是正确的答案。Web套接字的问题是,如果你的应用程序被用户或系统关闭,它就无法工作。