segmenfault的消息推送后台是咋做的?我知道前台肯定AJAX
首先我想知道比如说这个离线消息,是存在mysql里面的还是nosql数据库里面的呢?
然后我就想知道他的更新策略。
比如是客户端一上线的时候,是客户端到服务器取数据还是服务器判断用户是否上线。一旦上线就推送消息到客户端呢?
然后这些已读消息是不是读过了就从数据库删掉了?是读完了就删掉了还是比如做一个定时任务,比如每天凌晨4点统一删掉已读消息?
这个消息发送模块是一个异步的吗?但是我看见好多消息提醒的开源程序都是同步的。(没有什么异步框架之类的东西,比如wecenter,好像都用的是php,php本身不能异步,这个发消息到底是异步的还是同步的》求解惑!
因为我这一块也是不懂,说起来也是醉了。
大神解惑!
回复内容:
首先我想知道比如说这个离线消息,是存在mysql里面的还是nosql数据库里面的呢?
然后我就想知道他的更新策略。
比如是客户端一上线的时候,是客户端到服务器取数据还是服务器判断用户是否上线。一旦上线就推送消息到客户端呢?
然后这些已读消息是不是读过了就从数据库删掉了?是读完了就删掉了还是比如做一个定时任务,比如每天凌晨4点统一删掉已读消息?
这个消息发送模块是一个异步的吗?但是我看见好多消息提醒的开源程序都是同步的。(没有什么异步框架之类的东西,比如wecenter,好像都用的是php,php本身不能异步,这个发消息到底是异步的还是同步的》求解惑!
因为我这一块也是不懂,说起来也是醉了。
大神解惑!
- 消息可以存在MySQL里面,但是未读的消息序列可以存在NoSQL里面,SF应该是存Redis里面了。
- 没有那么复杂的思路,就是普通的轮训,上线就从服务器上抓,而不是服务器向客户端推。
- 不是,因为你可以从消息中查看到已读消息的。不过SF会清除老数据,也就是说一个账户最多能存300条消息似乎,更早的就会被删掉。删除个消息分分钟的事情而已,我个人感觉没必要用队列。
- 因为是轮询,不是推送,所以你这里谈同步异步似乎没什么意义。如果看你举的例子的话,SF应该是一样的。
最后感觉你把推送和轮询搞混掉了,推送是服务器主动往客户端推消息,轮询是客户端请求服务器然后服务器返回消息。这两个机制是不一样的。如果是推送的话,必然是搞个消息队列让服务器一个一个推比较爽咯。
他不是ajax,是websocket

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.
