使用php+js实现服务器推,在wamp环境中可以生效,但转移到Linux下的nginx上,就不能用了,是环境配置问题?要如何配置?
以下是相关代码
服务器端php代码:
<code>date_default_timezone_set("America/New_York"); header("Content-Type:text/event-stream"); $userid = $_SESSION['userid']; //session_write_close(); $db = get_db(); while(true) { $notices = $db->lRange("User:{$userid}:Notice", 0, -1); $notice_num = 0; foreach ($notices as $value) { $readed = $db->hGet("Notice:{$value}:Info", 'readed'); if ($readed == false) { $notice_num++; } } echo "event: ping\n"; $curDate = $notice_num; echo 'data: {"time": "' . $curDate . '"}'; echo "\n\n"; ob_flush(); flush(); sleep(30); } </code>
前端js:
<code>var evtSource = new EventSource(serverName + 'index.php/Home/NoticePush/index'); evtSource.addEventListener("ping", function(e) { var obj = JSON.parse(e.data); $('div#header div#user_notice a').text(obj.time); }, false); </code>
回复内容:
使用php+js实现服务器推,在wamp环境中可以生效,但转移到Linux下的nginx上,就不能用了,是环境配置问题?要如何配置?
以下是相关代码
服务器端php代码:
<code>date_default_timezone_set("America/New_York"); header("Content-Type:text/event-stream"); $userid = $_SESSION['userid']; //session_write_close(); $db = get_db(); while(true) { $notices = $db->lRange("User:{$userid}:Notice", 0, -1); $notice_num = 0; foreach ($notices as $value) { $readed = $db->hGet("Notice:{$value}:Info", 'readed'); if ($readed == false) { $notice_num++; } } echo "event: ping\n"; $curDate = $notice_num; echo 'data: {"time": "' . $curDate . '"}'; echo "\n\n"; ob_flush(); flush(); sleep(30); } </code>
前端js:
<code>var evtSource = new EventSource(serverName + 'index.php/Home/NoticePush/index'); evtSource.addEventListener("ping", function(e) { var obj = JSON.parse(e.data); $('div#header div#user_notice a').text(obj.time); }, false); </code>
因为nginx缓冲区问题,默认nginx是有缓冲区,php的刷新输出对nginx无效的。
需要输出前面再加个
<code>header('X-Accel-Buffering: no');</code>

本篇文章给大家带来了关于nginx的相关知识,其中主要介绍了nginx拦截爬虫相关的,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

高并发系统有三把利器:缓存、降级和限流;限流的目的是通过对并发访问/请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页)、排队等待(秒杀)、降级(返回兜底数据或默认数据);高并发系统常见的限流有:限制总并发数(数据库连接池)、限制瞬时并发数(如nginx的limit_conn模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(nginx的limit_req模块,用来限制每秒的平均速率);另外还可以根据网络连接数、网络流量、cpu或内存负载等来限流。1.限流算法最简单粗暴的

实验环境前端nginx:ip192.168.6.242,对后端的wordpress网站做反向代理实现复杂均衡后端nginx:ip192.168.6.36,192.168.6.205都部署wordpress,并使用相同的数据库1、在后端的两个wordpress上配置rsync+inotify,两服务器都开启rsync服务,并且通过inotify分别向对方同步数据下面配置192.168.6.205这台服务器vim/etc/rsyncd.confuid=nginxgid=nginxport=873ho

nginx php403错误的解决办法:1、修改文件权限或开启selinux;2、修改php-fpm.conf,加入需要的文件扩展名;3、修改php.ini内容为“cgi.fix_pathinfo = 0”;4、重启php-fpm即可。

跨域是开发中经常会遇到的一个场景,也是面试中经常会讨论的一个问题。掌握常见的跨域解决方案及其背后的原理,不仅可以提高我们的开发效率,还能在面试中表现的更加

nginx部署react刷新404的解决办法:1、修改Nginx配置为“server {listen 80;server_name https://www.xxx.com;location / {root xxx;index index.html index.htm;...}”;2、刷新路由,按当前路径去nginx加载页面即可。

nginx禁止访问php的方法:1、配置nginx,禁止解析指定目录下的指定程序;2、将“location ~^/images/.*\.(php|php5|sh|pl|py)${deny all...}”语句放置在server标签内即可。

linux版本:64位centos6.4nginx版本:nginx1.8.0php版本:php5.5.28&php5.4.44注意假如php5.5是主版本已经安装在/usr/local/php目录下,那么再安装其他版本的php再指定不同安装目录即可。安装php#wgethttp://cn2.php.net/get/php-5.4.44.tar.gz/from/this/mirror#tarzxvfphp-5.4.44.tar.gz#cdphp-5.4.44#./configure--pr


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)