[ 咨询 ] 好友聊天功能如何实现

2023-07-13 10:52:50 +08:00
 NeverBelieveMe

公司项目需要增加这么一个社交的功能,网上搜了一下,基本都是 socket 的方式去实现。这种方案也比较好理解,tcp 长链之后进行消息收发。自己简单写了一下多种事件的处理,可以运行。

这里有几个问题

  1. 我是在全局变量里面保存了每一个 client ,根据 IP 来取,然后进行消息发送。用户量不大,应该不会出现数据量过大的内存问题。不过还是想问一下,有没有什么好的方案。
  2. 以前写过一个类似的东西,是 socket 用多线程做事件并发处理的,现在改用 python 的 streams ,直接使用协程方法了,想问一下,这一块还需要搞协程池或者设置协程数量吗?我看文档上没写这个。
  3. socket 是单线程,可支持的并发量能有多大?虽然用不到高并发高可用,但是想了解一下,如果说用户量很大的情况下,单台服务器无法支撑的情况下,如何升级架构?
3813 次点击
所在节点    Python
42 条回复
xiaoshan5733
2023-07-14 15:59:32 +08:00
感觉悟空 IM ( https://githubim.com/) 挺适合 OP 的,一键部署,业务分离,可以试试
qbmiller
2023-07-14 16:03:10 +08:00
花钱买服务,接入云信。 越做越复杂,
我们 5w dau 每月几万块钱,但自己做,后端+客户端+推送+服务器.... 那一摊子,每月 2 个人成本打不住....
没多少人的外包项目,可以用 openim 算是全套的了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/956389

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX