【发布时间】:2022-08-16 05:37:39
【问题描述】:
我需要在我的应用程序中添加一个聊天,让用户相互联系。
要求
- 只有 1 对 1 沟通客户 2 客户(无群组或聊天室)
- 本质上是文本,图片上传是一个奖励(可能作为第二步)
- 消息必须以合理的延迟传递(可能 ... 最多 20 秒)
- 最大负载:3M 聊天消息/天,
协议/API
我只有大学和 TCP 套接字的回忆,最近对 gRPC 和协议缓冲区的试验,但这些看起来都不合适。
网络套接字?
然后,我发现了一些关于网络套接字协议和an implementation in Go from the Gorilla team 和Web Socket API from MDN
HTTP/3 ?
- WebTransport session, bidirectional stream
- Caddy HTTP/3 服务器或基于quic-go 的implementation of Web Transport from Marten Seemann
我还看了一下nsq,但在这种情况下它看起来像一台 Rube Goldberg 机器。
坚持……?
Cassandra 或 MongoDB 在这里看起来是不错的选择......
来自minghsu0107 的完整解决方案,go-random-chat...我不够熟练,无法考虑这个架构。我唯一想到的是这个解决方案是由一个人维护的……这意味着如果我选择使用它,我必须能够理解它的每一部分。因此,如果有人可以让我走上“正确”的道路,或者至少在我花费数周时间研究这些很棒的概念之前让我摆脱“错误”的道路:D
标签: websocket instant-messaging caddy nsq