首页 > 解决方案 > 我找不到合适的 api 来在我的应用程序中实现聊天?

问题描述

我想在我用 react-native + expo 构建的应用程序中实现一个真实的聊天功能,我试图用推送通知 + firebase 数据库创建一个自制的,但结果低于我的预期。虽然它正在工作,但它非常加载缓慢,我的应用程序崩溃并产生很多错误。我无法发布性能如此糟糕的应用程序。

我需要找到更好的解决方案。

我已经检查过pubnub chat enginepusher chat kit但我找不到一个问题的答案:我如何列出(分页)每个频道(对话),以便制作一个类似 whatsapp 的收件箱视图,其中列出了我最后一次带有未读徽章的对话和显示最后一条消息和用户照片等。

有人可以告诉我如何组织这个吗?

谢谢你。

标签: react-nativeexpo

解决方案


基本上有两个部分:每个用户的收件箱列表和实时聊天。

收件箱列表存储在应用程序本地,可能是 sqlite。您可能有一个表消息:message_id、sender、message_text、received_time、read_time。..

一个简单的实时聊天可以通过发布和订阅MessageQueue来实现。

当连接到您的服务器时,每个应用程序(用户)都会订阅他自己的主题。当你的服务器收到一条新消息时,它会检查接收者是否在线,如果是,它会直接将消息发布到他的主题。客户端应用程序将在订阅后接收消息,并将消息存储在本地。未读标记在本地进行跟踪。

对于消息队列,您实际上可以只使用云服务。AWS 有 ActiveMQ 和 IoT 消息代理。通信是通过 Websocket 上的 MQTT。


推荐阅读