目前我的结构是:
每个用户访问页面后会立即建立 websocket 长连接。
每个用户的 websocket 在连接建立时(on_open )会建立一个 redis connection,这个 redis connection 用来 subscribe 一个固定的 channel
当某个模型更改需要通知前端时,会用一个全局的 redis connection 来 publish 相关的内容到 channel 。
在第二步中订阅 channel 的回调会用 websocket 将更新的模型数据发给前端,前端实现实时更新。
用户离开页面后在触发 websocket 的 on_close 回调,回调中关闭用户 redis 链接。
这种方案每个用户访问页面都会建立一个 redis 连接,而 redis 默认的最大链接数是 10000,也就是说在默认配置下页面最多承载 10000 左右个用户。想请教下各位大佬这种设计是否合理。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.