Heim  >  Artikel  >  Backend-Entwicklung  >  如何样做实时网页

如何样做实时网页

WBOY
WBOYOriginal
2016-06-13 12:56:05877Durchsuche

怎么样做实时网页
数据信息放在一个文件中,用php做实时网页,如果文件发生变动,就立马更新当前所在的网页,想知道用什么办法来实现比较好?之前的思路是js做轮询,每秒一次请求,如果一旦发现文件变化了,就重新加载,觉得这个不好


------解决方案--------------------
这个需求要做到真正的“实时”,主要有两个地方:

1 文件更新即时通知。
2 服务器能即时将数据发送到客户端(浏览器)。

首先,文件更新即时通知,这个你想的肯定是循环去扫描文件的最后更新时间,从这一步上你想的办法就无法做到实时。想做到实时,就要利用系统的时间驱动。比如linux 2.6内核的inotify。用c写个程序,跑个进程。当接收到这个通知后就去修改php的源代码。

服务器推,其实就是在客户端与服务器的一次http交互中,服务器循环的给客户端response数据。这个网上说的大多比较笼统,我总结一下,其实也没那么复杂。

1 需要修改web服务器的buffer。
2 关闭web服务器会主动控制buffer的模块,如gzip。
3 需要突破浏览器的buffer size,如让程序每次在response数据时填充一些空格另数据达到浏览器的buffer size。如ie是1024字节。

在apache上很好实现,在nginx上有时比较奇怪,据我一些朋友反映他们无法成功,但我在本机nginx+chrome成功了。


接下来你要考虑的就是,如何将这两点结合在一起。
------解决方案--------------------
如果页面和程序并不在同一台服务器,可采取推送的方式,就是说,在A服务器执行脚本程序生成最新页面,然后用shell脚本 将最新页面移动到B服务器
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn