【问题标题】:Architecture of a simple chat web app at scale大规模简单聊天 Web 应用程序的架构
【发布时间】:2022-08-16 05:37:39
【问题描述】:

我需要在我的应用程序中添加一个聊天,让用户相互联系。

要求

  • 只有 1 对 1 沟通客户 2 客户(无群组或聊天室)
  • 本质上是文本,图片上传是一个奖励(可能作为第二步)
  • 消息必须以合理的延迟传递(可能 ... 最多 20 秒)
  • 最大负载:3M 聊天消息/天,

协议/API

我只有大学和 TCP 套接字的回忆,最近对 gRPC 和协议缓冲区的试验,但这些看起来都不合适。

网络套接字?

然后,我发现了一些关于网络套接字协议an implementation in Go from the Gorilla teamWeb Socket API from MDN

HTTP/3 ?

我还看了一下nsq,但在这种情况下它看起来像一台 Rube Goldberg 机器。

坚持……?

Cassandra 或 MongoDB 在这里看起来是不错的选择......

来自minghsu0107 的完整解决方案,go-random-chat...我不够熟练,无法考虑这个架构。我唯一想到的是这个解决方案是由一个人维护的……这意味着如果我选择使用它,我必须能够理解它的每一部分。因此,如果有人可以让我走上“正确”的道路,或者至少在我花费数周时间研究这些很棒的概念之前让我摆脱“错误”的道路:D

    标签: websocket instant-messaging caddy nsq


    【解决方案1】:

    鉴于您提供的背景,我认为您最好集成一个开源的、现成的消息插件,而不是尝试构建自己的。

    RocketZulip 之类的东西可能适合(并为您省去很多悲伤)。

    【讨论】:

    • 这些类似 Slack 的解决方案并不专注于 1 对 1、客户 2 客户、对话,所以乍一看似乎有点离题,但无论如何了解都很有趣
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 2016-07-14
    • 2018-01-29
    • 2015-12-05
    • 2018-03-28
    • 2010-11-06
    • 1970-01-01
    相关资源
    最近更新 更多