ant*_*nt1 3 django chat node.js reactjs react-native
您好,我将实现一个社交聊天应用程序,该程序可以满足一些要求,但是我不确定该如何实现。
需要:
应用程序“前端”应使用React Native编写
支持端到端加密
支持用户间的聊天
OAuth2.0
推送通知
历史
Django或Node后端
问题出在后端设计中。我正在考虑使用带有websockets的Node.js或带有通道的Django,但我不知道哪种存储聊天(如电报)的数据库设计很好,也不知道如何构建消息队列。
谁能给我一些有关聊天应用程序设计的提示?谢谢
这是我的建议
您实际上有3个选择:
实际上,这并不重要,您可以使用Node.js Websockets,Django通道还是Rails Action Cable。它们将具有几乎相同的性能(或者Node.js可能会好一点)。您也可以为此使用任何数据库:MySQL,PostgreSQL或MongoDB。
例如,您可以具有以下数据库表结构:
对话内容
留言内容
用户数
附件
然后,所有用户将与您的服务器建立持久的Websocket连接,并将使用它来发送/接收消息。您的服务器会将所有消息存储在数据库的适当表中。
此外,您的服务器将提供REST API来检索对话,消息,附件,其他用户配置文件的列表。
我要说的是,此选项适用于小负载,少量用户(由于选择了技术(Node.js / Python / Ruby),并且还因为您将自己构建它,所以不确定您是否具有足够的实时应用程序构建经验)
您的App服务器可能会提供REST API,以检索对话,消息,附件和其他用户个人资料的列表。
聊天服务器将提供一种连接,发送/接收消息的方法。您还需要为所选的聊天服务器编写一个插件,该插件将跟踪所有消息并将其放入Server App DB中。
例如-ConnectyCube-具有消息传递功能,用户群,推送通知,视频通话,聊天机器人的消息传递和视频通话提供商。您可以将App Server及其REST API集成在一起。甚至根本不用编写自己的App Server并完全使用此平台。因此节省大量时间和金钱。
使用此类平台,您无需担心服务器托管,服务器监控,服务器正常运行时间以及其他与服务器相关的工作,而只需在应用程序中使用它们的API和SDK。通常,此类平台提供免费计划以及您拥有数据的专用企业解决方案(例如,数据部署在您自己的AWS账户上)。因此强烈推荐。
因此,这种情况在您的情况下是可能的。
| 归档时间: |
|
| 查看次数: |
444 次 |
| 最近记录: |