反向 ajax 又叫 comet / server push / 服务器推技术php
应用范围:网页聊天服务器,例如新浪微博在线聊天、google mail 网页聊天html
原理:通常而言,HTTP 协议的特色是,链接以后断开链接(服务器响应 Content-Length,收到了指定 Length 长度的内容时,也就断开了)。在 HTTP 1.1 协议中,容许不写 Content-Length,好比要发送的内容长度确实不知道,此时须要一个特殊的 Content-Type:chunked,叫作分块传输,只有当服务器最后发送 0\r\n,在代表服务器和客户端的这次链接完全结束。mysql
【例】ajax
1sql 2数据库 3浏览器 4服务器 5fetch 6google 7 8 9 10 11 12 13 14 15 16 |
|
执行页面:
2,3,4,5..源源不断地输出。
当输出的值是数据库中的数据(能够是聊天记录),就能够实现即时通讯。
新建数据库 msg,新建表 message:
1 2 3 4 5 6 |
|
修改 comet.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
同时在命令行中运行 mysql,插入数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
此时页面的效果是:每插入一条数据,该数据就在页面中当即输出
该技术就叫 comet / server push / 反向 ajax 技术。
能够使用 Node.js(长链接)+Redis(队列服务器)+ PHP + comet(反向 ajax) 实现更好的即时聊天。