,后台如果新增了一条信息,那在推送的时候,是怎么获取后台新增的消息的?
来源:8-17 赛事直播功能开发-优化
qq_慕斯卡6187973
2020-09-18
如题,第8章是手动写了一条消息,然后推送,那么我想知道实际中是如何推送的?
2回答
-
就我皮
2021-02-05
服务端:
1 : 后台发布的时候 写入Redis (根据具体数据,选择适合的数据结构,如果前端只是要看50条热门消息,就写入50条就行,如果数据需要很多,用有序集合去分页也行,主要还是要具体情况具体分析,如果这个数据只是冷数据,而不是热数据,不用到redis 也行)
2: 后台发布的时候看情况同时 写入 MySQL (看具体是什么数据 才决定是否要记录,比如有的消息只用保存最近的50条,如聊天记录,弹幕,只是为了用户打开有点东西看,其实也没必要 永久记录到数据库)
3: 服务端 根据 客户端 的fd 去推送消息 (解决客户端需要刷新页面才看到数据的问题)
----------------------------------------
客户端:
websooket 保持长连接, 正常接收到 服务端 返回的消息。
2. 如果有 关闭了页面, 隔了很久才打开软件的用户,发送 个 请求,让后端 先从 redis 里面 拉取 一遍 最新的数据给展示出来。
3. 有新的数据 接收到, 照常 从历史数据上面 插入 节点 进去就可以拉。
----------------------------------------
不过 redis 里面 有个 消息订阅 和发布的功能,也可以简单 实现 接收 和 推送,但是性能不是特别好,每次订阅都会新起一个进程。
其他的 自己动手研究研究呗。 可以 先写入数据库 ,在推送 给客户端, 下次打开直接 从数据库 先 拉取一遍数据呗,然后在接收 最新的数据, 这就比较简单了。
一般 实际工作中 : 一定要先明确 这个 数据 是冷 数据 还是热数据,也是这个数据展示到客户端 是否会被频繁请求访问,在决斗 用啥 技术 去处理。
00 -
singwa
2020-10-12
亲爱的同学您好。你说的实际中是如何推送的具体是指 ?
是说在实际工作中 推送具体是怎么实现的,是这个意思吗?
012020-10-12
相似问题