segmenfault的消息推送后台是咋做的?我知道前台肯定AJAX

发布于 2022-08-29 20:04:55 字数 341 浏览 17 评论 0

首先我想知道比如说这个离线消息,是存在mysql里面的还是nosql数据库里面的呢?
然后我就想知道他的更新策略。
比如是客户端一上线的时候,是客户端到服务器取数据还是服务器判断用户是否上线。一旦上线就推送消息到客户端呢?

然后这些已读消息是不是读过了就从数据库删掉了?是读完了就删掉了还是比如做一个定时任务,比如每天凌晨4点统一删掉已读消息?
这个消息发送模块是一个异步的吗?但是我看见好多消息提醒的开源程序都是同步的。(没有什么异步框架之类的东西,比如wecenter,好像都用的是php,php本身不能异步,这个发消息到底是异步的还是同步的》求解惑!
因为我这一块也是不懂,说起来也是醉了。
大神解惑!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

如若梦似彩虹 2022-09-05 20:04:55
  1. 消息可以存在MySQL里面,但是未读的消息序列可以存在NoSQL里面,SF应该是存Redis里面了。
  2. 没有那么复杂的思路,就是普通的轮训,上线就从服务器上抓,而不是服务器向客户端推。
  3. 不是,因为你可以从消息中查看到已读消息的。不过SF会清除老数据,也就是说一个账户最多能存300条消息似乎,更早的就会被删掉。删除个消息分分钟的事情而已,我个人感觉没必要用队列。
  4. 因为是轮询,不是推送,所以你这里谈同步异步似乎没什么意义。如果看你举的例子的话,SF应该是一样的。

最后感觉你把推送和轮询搞混掉了,推送是服务器主动往客户端推消息,轮询是客户端请求服务器然后服务器返回消息。这两个机制是不一样的。如果是推送的话,必然是搞个消息队列让服务器一个一个推比较爽咯。

睫毛上残留的泪 2022-09-05 20:04:55

他不是ajax,是websocket

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文