sse实例
一、前台
<script>//D:\wamp\www\node\xiangmuer\views\main
  // var source = new EventSource('http://127.0.0.1:1111/api/ceshi');
function GetQueryString(name)
	{
	     var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
	     var r = window.location.search.substr(1).match(reg);
	     if(r!=null)return  unescape(r[2]); return null;
	}
  $(function(){
  	$(".title").html(decodeURI(escape(GetQueryString('title')))); 
  	var source = new EventSource("/app/index.php?i="+GetQueryString('i')+"&j=11&c=entry&rid="+GetQueryString('rid')+"&do=daping_show_api&m=fm_photosvote");
  //var div = document.getElementById('example');
source.onopen = function (event) {
  	  	   console.log(event)
    //div.innerHTML += '<p>Connection open ...</p>';
  };
source.onerror = function (event) {
  	  	   console.log(event)
    //div.innerHTML += '<p>Connection close.</p>';
  };
source.addEventListener('connecttime', function (event) {
  	   console.log(event)
    //div.innerHTML += ('<p>Start time: ' + event.data + '</p>');
  }, false);
source.onmessage = function (event) {//返回成功的
//div.innerHTML += ('<p>Ping: ' + event.data + '</p>');
    //cons(event);
    var daList=event.data;
var daListJs= JSON.parse(daList);
$("#list").html('');
    for(var i=0;i<daListJs.length;i++){
    	var new_zhi = daListJs[i].photosnum
    	var max = daListJs[i].max
		var width = new_zhi/max *100 +'%'
		var html ='<li class="clearfix">'
			html+='<div class="tem">'+daListJs[i].realname+'</div>'
			html+='<div class="barBox">'
			html+='<div class="bar" style="width:'+width+'">'+daListJs[i].photosnum+'</div>'
			html+='<i></i></div></li>'
		$(html).appendTo("#list");
    }
};
})
</script>
二:后台php
header('Content-Type: text/event-stream');
		header('Cache-Control: no-cache'); // 建议不要缓存SSE数据
		global $_GPC,$_W;
		$rid=(int)($_GPC['rid']);
		$list=pdo_fetchall("SELECT photosnum+xnphotosnum as photosnum,realname  from ".tablename('fm_photosvote_provevote')." where rid=$rid order by photosnum desc");
		$listt=pdo_fetchall('select MAX(photosnum+xnphotosnum) from '.tablename('fm_photosvote_provevote')." where rid=$rid");
		$max=$listt[0]['MAX(photosnum+xnphotosnum)'];
		foreach ($list as &$value) {
			$value['max']=$max;
		}
		$list=json_encode($list);
		 $time = date('Y-m-d H:i:s');
   		 echo 'retry: 1000'.PHP_EOL;//返回时间间隔
   		echo 'data:'.($list).PHP_EOL.PHP_EOL;
node.js端后台
router.get('/ceshi',function(req,res,next){
	 res.writeHead(200, {
      "Content-Type":"text/event-stream",
      "Cache-Control":"no-cache",
      "Connection":"keep-alive",
      "Access-Control-Allow-Origin": '*',
    });
	 res.write("retry: 10000");
	 res.write("retry: 10000");
	 res.write("retry: 10000");
	 res.write("retry: 10000");
	  // interval = setInterval(function () {
   //    res.write("data: " + (new Date()) + "\n\n");
   //  }, 1000);
	//res.send('uapi你妹');
});
sse实例的更多相关文章
- 最近学习工作流 推荐一个activiti 的教程文档
		
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
 - Hibernate(3)——实例总结Hibernate对象的状态和ThreadLoacl封闭的session
		
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: Hibernate的内部执行过程(CRUD) 对象的状态及其转换图和例子 使用JUnit测试 使用getCur ...
 - JVM学习(1)——通过实例总结Java虚拟机的运行机制
		
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: JVM的历史 JVM的运行流程简介 JVM的组成(基于 Java 7) JVM调优参数:-Xmx和-Xms ...
 - Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE
		
1. 前言 Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Serve ...
 - SSE:服务器发送事件,使用长链接进行通讯
		
概述 传统的网页都是浏览器向服务器“查询”数据,但是很多场合,最有效的方式是服务器向浏览器“发送”数据.比如,每当收到新的电子邮件,服务器就向浏览器发送一个“通知”,这要比浏览器按时向服务器查询(po ...
 - 【转】【SSE】基于SSE指令集的程序设计简介
		
基于SSE指令集的程序设计简介 作者:Alex Farber 出处:http://www.codeproject.com/cpp/sseintro.asp SSE技术简介 Intel公司的单指令多数据 ...
 - 【转】【SEE】基于SSE指令集的程序设计简介
		
SSE技术简介 Intel公司的单指令多数据流式扩展(SSE,Streaming SIMD Extensions)技术能够有效增强CPU浮点运算的能力.Visual Studio .NET 2003提 ...
 - 机器学习实战5:k-means聚类:二分k均值聚类+地理位置聚簇实例
		
k-均值聚类是非监督学习的一种,输入必须指定聚簇中心个数k.k均值是基于相似度的聚类,为没有标签的一簇实例分为一类. 一 经典的k-均值聚类 思路: 1 随机创建k个质心(k必须指定,二维的很容易确定 ...
 - 转:SSE:服务器发送事件
		
原文来自于:http://javascript.ruanyifeng.com/htmlapi/eventsource.html 目录 概述 客户端代码 概述 建立连接 open事件 message事件 ...
 
随机推荐
- MySQL提供了以下三种方法用于获取数据库对象的元数据
			
MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表 3)命令行程序,如mysqlshow, mysqldump 用 ...
 - python-模块的导入import
			
#-*- coding:utf-8 -*- #本次学习:模块的导入 ''' 1.模块名不能与第三方库或者本地库名字重名/冲突 2.导入模块时,寻找顺序:现在当前目录找,再去我们环境变量配置的pytho ...
 - django之模板系统 --》内容(filter过滤器、tags标签【for、if、with】、母板以及继承、crf_token、注释、组件、静态文件【load static】、get_static_prefix、自定义标签和tag)
			
常用: Django模板中只需要记两种特殊符号: {{ }}和 {% %} {{ }}表示变量,在模板渲染的时候替换成值,{% %}表示逻辑相关的操作. 变量 {{ 变量名 }} 变量名由字母数字和下 ...
 - python2.7与3.5版本中:编码格式及编码转换
			
主要说明编码之间的转换方法 2.7版本: 1 # -*- coding:utf-8 -*- 2 a = "迪丽热巴" 3 a_unicode = a.decode("ut ...
 - windows定时关机命令
			
at 11:00 shutdown.exe -s -t 120 https://jingyan.baidu.com/article/574c52191ea9996c8c9dc17a.html?st=2 ...
 - spark基础知识介绍(包含foreachPartition写入mysql)
			
数据本地性 数据计算尽可能在数据所在的节点上运行,这样可以减少数据在网络上的传输,毕竟移动计算比移动数据代价小很多.进一步看,数据如果在运行节点的内存中,就能够进一步减少磁盘的I/O的传输.在spar ...
 - Linux查看系统中socket状态
			
当我们打开的socket数量很多时,netstat就会变得慢了,有什么办法可以快速查看系统中socket状态? IPv4: $ cat /proc/net/sockstat sockets: used ...
 - 火狐Firefox浏览器所有历史版本下载地址
			
Mozilla Firefox 频繁的更新,导致许多好用的插件在更新后不能兼容,而且想换回低版本还不容易啊,官网上只看到最新版本和前一个版本的下载. 这里为大家提供了一个下载链接,是来自Mozilla ...
 - get return value of python in shell
			
from: https://stackoverflow.com/questions/2115615/assigning-value-to-shell-variable-using-a-function ...
 - ThinkPHP子类继承Controller类的注意事项
			
在实际的开发中,往往有很多子类都继承自同一个父类,然后该父类再继承自框架内置类的需求. 比如: class Init extends Controller{...} class son1 extend ...