如何实现在线聊天?

问题描述

好的,假设有一家公司(比如电子商务)必须在其网站上实施支持聊天。您知道需要哪些协议/基础设施吗?

我看过 XMPP,但我不知道它对我来说是否真的有用...

很多!

解决方法

如果你需要自己实现所有东西,又不想使用 XMPP 服务器,你可以创建自己的聊天协议。

这样的协议可以基于JSON-RPC
此外,您可以仅使用来自 Socket.IO 的功能来创建一个简单的协议。
您可以在服务器端和客户端使用 Socket.IO。

您还需要一个用于存储聊天和消息的数据库。
如果您预计流量会非常大,您可以使用例如 Apache CASSANDRA,但是对于大多数实现来说,一个普通的 SQL(或 noSQL)数据库就足够了。
最好使用您熟悉的数据库。 PostgreSQL 可能是一个不错的选择,因为它有很好的 JSON 支持。
如果您更喜欢 noSQL 数据库,MongoDB 就可以了。

如果您使用 React,对于前端,我建议您将 @chatscope/chat-ui-kit-react 组件与 @chatscope/use-chat 库一起使用(我是它们的作者)。

,

只需使用这样的开源项目即可开始:https://github.com/tinode/chat