sse怎么把获取的表单信息实时com4j 推送指定客户端到客户端

1.FineReport是什么?
FineReport是一款集(报表)和数据录入(表单)功能于一身,用来辅助开发软件的。有了FineReport,在软件开发过程中,可以革命性的加快开发速度,提高软件的稳定性并做到随需应变;在软件交付后,可以大大的降低维护难度,提高最终用户的满意度。
2.FineReport报表软件的组成是什么?
FineReport由设计模板的设计器和解析模板的服务器组成。
设计器: FineReport报表设计器的界面简单易用,熟悉Microsoft Excel的用户不需任何额外学习成本。一般用户也能在阅读FineReport提供的帮助文档后快速掌握设计器的使用。
服务器: FineReport报表服务器主要用来读取和解析设计器制作好的模板,并将模板转换成html页面,方便用户通过IE, Firefox等浏览器查看、修改和打印数据。同时FineReport报表服务器内置了强大的缓存机制、集群机制,支持超大数据量的运算,支持大数量用户的并发处理,并创新性采用flash技术完美支持零客户端精确打印。
3.FineReport报表工具主要有哪些功能?
:支持多种数据源、完全,支持多报表运行环境、协同制作报表。支持单元格格式化、条件属性、超级链接、形态、条形码。支持可操作性极强的数据展现。支持包括柱形图,折线图,面积图,饼图,散点图,雷达图,仪表盘,多坐标轴混合图等功能。
报表B/S展示:支持纯HTML展现,冻结行列标题,动态排序、自定义页面集成等展现形式。 :支持参数查询界面、参数编辑器、参数延迟加载及参数联动等多方位参数功能。
:支持多数据源填报,指定表与数据库表的关系、多sheet填报、数据校验、数据自动运算、页面转向、导入Excel数据填报、单元格的编辑权限的填报功能。 报表服务器:报表服务器集群,定时任务管理,企业性能优化。
报表输出:支持原样,分页,分页分Sheet,分页分Excel等多种导出Excel方式,支持导出Excel设置密码等,与Excel无缝结合。支持导出PDF、Word、TXT、CSV、SVG、HTML文件和内置数据模板。
:支持以flash打印,PDF打印,applet打印为主体的客户端打印,也支持调用服务器端打印机打印。 二次开发:丰富开放的二次开发接口,结构清晰的API,支持无限扩展的二次开发。
4.FineReport报表工具是如何帮助我们开发软件?
现状: 开发一款基于数据库的软件,其中大部分的工作就是通过写jsp/asp/php代码向数据库中录入数据和把数据库中的数据读取和展示出来。这样编写代码来实现数据录入(表单)和(报表)功能,不仅开发效率不高,而且项目交付后的维护工作量很大,如果客户的要求发生一点点改变,修改的成本将非常的高。 方案: 有了FineReport,不再需要编写代码了;而是通过FineReport提供的报表模板设计器,拖拖拽拽就制作出实现数据展示(报表)和数据录入(表单)功能的页面模板,然后将这些模板保存到FineReport报表服务器指定的目录下面。当最终用户通过浏览器远程访问某个页面模板,FineReport报表服务器会把用户指定的页面模板自动解析成零客户端的html页面给浏览器,这样用户就可以在浏览器里面查看或录入数据了。
5.谁需要FineReport?
软件公司: 软件公司拥有专门的技术人才,很容易学会FineReport的使用,可以在ERP,CRM,OA等软件产品中集成FineReport,大大加快软件的开发进度,增加软件的稳定性,大大降低软件的后期维护成本,提高了最终用户的满意度。 其他的商业公司,政府机关等: 有了FineReport,单位现有的软件,能够做到随需应变,对它们进行改进和增强,不再完全依赖于软件公司,而是自己经过简单的培训后就可以来做了;这样单位所有的软件,不再是不能随时改进和增强的静态系统了,而是随着需求的变化而变化的动态系统了,从而彻底走出软件业的怪圈——”年年需要花钱买新的软件,买来的新软件却不能满足年年变化的需求”。
6.FineReport报表软件有哪些语言版本?
目前FineReport报表软件支持简体中文版、英文版、日文版和繁体中文版。
安装与激活
1.从网上下载的FineReport报表软件安装程序如何进行安装?
直接点击FineReport安装程序,按提示一步一步进行安装,安装大约需要占据146M的内存空间。
2.什么是FineReport报表设计器激活码?
激活码是帆软公司允许使用FineReport报表软件的授权文件,只有拥有激活码才能使用FineReport报表软件设计器。设计器激活码是一串23位的大写英文字母和阿拉伯数字的组合,前4位是字母,后4位是数字,其他位是字母和数字任意组合。
3.如何免费获取FineReport报表设计器激活码?
您可以通过以下两种方式获取免费的激活码:(1)在我们的网站填写的表单,我们将把激活码发送到您的注册邮箱中,因此,请正确填写您的邮箱地址;(2)直接给我们来电(025-),获取激活码。
4.如何使用激活码激活FineReport报表设计器?
下载安装FineReport后,运行报表设计器时需要输入激活码以激活设计器,这个时候只需将免费获取的23位激活码(连接符不用去掉)复制粘贴进输入框中,点击确定,便可激活设计器,下次运行时直接登录即可。
5.激活码有没有使用限制?
激活码没有任何时间限制,并且可以重复使用。
6.有没有相应的报表帮助文档?
有的,安装完,激活完成之后,在帮助菜单下,点击内容,就可以打开内置的,里面有详尽的使用方法。
升级和兼容性
1.升级到最新版的FineReport有哪些注意事项?
在帮助菜单下,点击内容,就可以打开内置的帮助文档,帮助文档中有详尽的升级方法,可以参照。
2.版本升级需要付费吗?
FineReport会定期生成一些升级包,这种小版本升级是免费的,大版本升级,如6.1、6.2、6.5和7.0之间的升级是要收取费用的。
3.新版的FineReport报表工具在功能上有哪些改进?
V8.0版本在功能上的改进如下
1、扁平化设计器
描述:设计器界面风格转为扁平化
2、设计器与论坛一键登录及最新消息
描述:设计器中增加登录按钮,可以一键登录帆软论坛,并且定期推送产品最新信息至设计器。
3、聚合报表支持导出打印
描述:8.0版本中聚合报表支持导出excel/wordpdf及各种打印。
4、分栏大标题和结尾行优化
描述:现在大标题分栏,除非一个单元格完全覆盖分栏区域时才能跟随拉伸。这样不能满足客户需求,8.0版本中进行了改进。
5、填报页面体验改进
描述:目前填报页面的控件,初始加载的时候,不显示控件样式,从而没法知道哪边有控件需要编辑、没法知道控件是什么类型、要想编辑一个控件,要点2-3下,先选中,再点开,8.0版本增加开关控制可以展示出控件样式。输入控件是激活的,用户可以直接编辑输入数据。
6、Web端控件样式扁平化
描述:参数界面及填报界面以及工具栏按钮及控件,8.0版本进行了美化,默认使用新的扁平化效果,也可以使用插件开启老风格。
7、在线导入excel做成选项
描述:目前我们的在线导入excel后台逻辑比较复杂,不能满足所有客户的需求,增加属性控制不同情况使用不同匹配逻辑,使得功能更加灵活。
8、导出打印html处理
描述:8.0版本之前直接将html处理成图片,导出打印时,由于图片缩放,会导致模糊,8.0版本后html导出后即为对应内容,解决导出打印模糊的问题。
9、支持编辑富文本
描述:设计器单元格元素增加富文本编辑器,实现同一单元格中不同内容样式不同。
10、tab布局
描述:表单中增加tab布局,实现卡片式组件。
11、预定义纸张大小
描述:客户为手机专门做模板的时候,不知道要做多大才正好,调完模板后每次都需要在手机上看反复调试才行,8.0版本中增加手机纸张大小,帮助用户快速制作手机报表。
12、内置Access数据库替换为sqlite
描述: 8.0版本设计器自带的内置数据库为access,在64为jdk服务器下不能用,需要装64位access的odbc驱动;在mac上也没法用,8.0版本中替换为sqlite。
13、插件安装与更新
描述:为了满足各类用户的需求,8.0版本帆软报表将增开更多接口,使用接口实现的特殊功能可以通过插件的方式集成到报表设计器及服务器,并且提供界面化操作及管理。
14、flash打印 ppapi和npapi
描述:chrome浏览器中使用flash打印,如果检测chrome使用的是ppapi,也支持打印,但是不支持边距设置。
15、平台主体风格
描述:我们重新规范了平台样式的架构,设计了插件式的平台主题和配色风格系统,并内置了两套精心设计的主题和一系列配色,满足各类用户的审美需求
16、地图支持svg解析
描述:内置地图更换为svg。提高地图的展示效果。重新设计地图图例开关,使其更符合用户习惯。预览时可根据鼠标滚轮放大缩小。
17、新增漏斗图
描述:新增加漏斗图图表类型
18、改进数据点提示
描述:数据点提示改为div展示,字体清晰。且重新设计数据点提示动画。支持html内容数据点提示
19、组合图重新设计
描述:组合图支持多堆积柱形图以及三维柱形图。
20、时间切换
描述:图表缩放新增时间切换功能
21、股价图改进
描述:股价图支持展示名称(“盘高”“盘低”等参数)修改
22、地图增加标签功能
描述:gis地图新增支持标签
23.标签过长处理
描述:坐标轴标签支持换行以处理标签过长时的状况
24、部分效果美化
描述:折线图,面积图,雷达图的标记点类型效果重新设计,饼图牵引线重新设计,气泡图效果重新设计。
25、散点图支持单元格数据源
描述:支持散点图单元格数据
26、动画提升
描述:图表自动刷新以及联动时的动画改为连贯动画。
27、刻度支持公式
描述:仪表盘,地图自定义刻度值支持公式
28、图表接口开放
描述:开放部分图表js接口,支持集成第三方图表库
V7.1版本在功能上的改进如下
1. 多维数据库连接
新增以XMLA/MDX规范为核心基础,支持多维数据库查询,目前支持的多维数据库有:Microsoft SQL Server Analysis Services(简称SSAS)、Oracle Essbase、SAP HANA。
2. xml数据集支持多级
强化了xml数据集功能,将xml的结构以树的形式展现,在原2级xml基础上,增加对多个根节点xml、多级节点xml的支持。
3. 导出word可自动调整行高
将导出word是否自动调整行高作为可配置选项,以满足不同用户的需求。
4. 强化并改良冻结功能
对冻结功能做了整体的改进与强化:
A 分页预览导出excel冻结可保留
B 将填报预览的冻结设置逻辑与分页冻结进行了统一
C 填报冻结支持扩展单元格
D 修复了冻结错位等一系列冻结问题
5. 强化邮件附送功能
对邮件功能做了整体的改进与强化:
A 新增邮件正文可以直接显示报表内容功能
B 强化邮件正文和标题,都可以使用公式或者参数实现动态控制
C 改进邮件配置界面及附件名称等一系列邮件相关问题
6. 权限细粒度强化
权限细粒度中增加行列、悬浮元素、sheet的控制,且可以根据不同的角色单元格显示不同内容。
7. 改进悬浮元素导出excel
改进了悬浮元素导出excel的内部实现机制,解决悬浮元素导出excel与预览效果差距大的问题。
8. 树性能优化
A 下拉树模糊搜索性能优化
B 树数据集构建性能优化
9. 优化与hadoop连接方案
优化了与hadoop连接方案,处理了相关问题
1. 数据报送
新增了基于流程和调度引擎的功能,为用户提供了一套完整的多级机构分级填报流程控制机制,能帮助用户轻松实现数据采集报送与汇总分析,快速管理填报任务、即时汇总和查询填报结果。
2. 离线填报
新增将填报报表导出为本机html文件,用于离线填写,保留了原始模板的校验规则、自动计算规则及控件,可反复保存,联网后可直接入库。
3. 复杂填报sql简化
报表填报属性新增智能添加单元格组,用户复杂填报模板定义几十个甚至上百个内置sql,使用此功能可以大大减少内置sql数量,提升开发及维护效率。
4. 控件及自定义工具栏按钮的提交入库事件改进
等提交入库事件支持定义多个内置sql,并且保证事务一致性。
5. 填报居中以及分页居中边框删除
填报预览增加了居中显示;分页与填报居中的边框删除。
6. 可配置下拉树返回值不返回完整路径
增加选项控制下拉树返回值是否返回完整路径,7.1版本新做模板默认不返回完整路径。
7. 值不改变不更新属性配置修改
值不改变不更新改为未修改不更新,界面上将此功能独立出来统一设置。
8. 强化导入excel
强化了在线导入excel功能,增加根据报表结果匹配逻辑,从而支持双向扩展填报表的excel导入
1. 强化远程设计
强化远程设计功能:
A 用户远程设计时可以看到日志信息
B 用户可以删除模板
C 共享资源只有管理员可以编辑,普通用户只能使用,且有权限的使用
D 提高远程连接代码质量,改善远程连接异常时的交互
2. 设计器意见反馈
设计器帮助菜单下新增意见快速反馈渠道,方便用户快速反馈意见。
1. 优化图表显示效果,提供配色和风格方案
优化图表显示效果,新增多种专业风格和配色方案,可直接选择适用。
2. 新增了图表类型——圆环图
新增圆环图,提供一种新的数据展示方式。可以展示多维对比数据
新增坐标轴逆序和值轴逆序功能,可以改变图表的展示方向。满足在一些特定情境下(如展示坑深),图表的展示。
4. 三维图表的绘制
改变目前的三维图表以图片进行展示的方式,三维图表支持交互同时更加清晰。
5. 坐标轴缩放改进
改名为图表缩放。改善缩放控件的滑动效果和图表缩放的动画效果,支持选中区域进行图表放大。现在支持ie9以上的ie浏览器了。
6. 新增系列交互
系列可拖拽,实现系列合并和系列隐藏。
7. gis地图支持经纬度传入
用户可选择是直接利用经纬度传入还是利用地址解析服务进行定位。
8. 图表设计器界面重新设计
图表设计更简易。
9. 多层方式优化以及内置地图支持透明背景.
10. 图表显示优化
改善图例的效果,增加图表区边框线设置,改善图表显示模糊的问题等。
1. 用户导入
现在fs除了可以手动添加用户和同步用户,也可以导入用户信息(用户、部门职位、角色、邮箱等信息),导入之后可以在fs中二次修改用户信息;另外用户管理页面新增了搜索框,可以更方便地查看、编辑用户信息
2. 定时任务条件判断
定时任务支持条件判断设置(包括公式判断和自定义类判断),只有满足条件的时候定时任务才会执行
3. fs国际化
处理了fs国际化的一系列问题
4. 支持用二维码扫描方式添加服务器
移动app支持用二维码扫描方式添加服务器,避免手动输入的不方便以及容易输错的问题;另外还支持自定义app启动画面图片
5. fs和platform统一
fs和platform统一使用一套框架,当用户同时使用fs和platform时,只需同时使用一套用户信息,在统一的地方配置权限;另外对fs的项重新进行了逻辑整合和界面风格的统一调整。
6. 权限配置
改善了权限配置的易用性,完善了多级权限配置功能;新加了“反向”权限配置(对报表配置角色的权限),可以更灵活地进行权限配置;支持用户权限查看,包括直接查看具体用户有哪些报表权限、具体报表有哪些用户有权限
7. 性能优化
优化了用户、角色、权限配置页面的展示性能
4.FineReport报表软件最新版程序文件是否与早期版本的FineReport程序产生的文件相兼容?
各个版本之前进行升级,由于功能的增删改,会存在一些兼容性问题,但是整体上来说FineReport是向下兼容。
注册与授权
1.FineReport报表软件非注册版与注册版的区别?
FineReport非注册版与注册版在功能上并无区别,它们都包含软件的全部功能(报表表单设计器和报表表单服务器)。非注册版经激活后方可使用,只是在报表和表单展示的左下角落加上了提示注册和购买FineReport企业版的字样。
2.FineReport报表注册需要填写的内容有哪些?
FineReport的注册内容包括有公司名称和项目名称。
3.FineReport的注册流程是什么?
FineReport的注册授权license文件是和计算机的MAC地址绑定的,所以打开FineReport设计器,任意打开一张报表,点击分页预览,web界面的左下角就会出现如下字样, 点击此处的“注册”,即可弹出如下的对话框 填入相应的公司名称和项目名称之后,点击“提交注册信息”,即生成一个名为RegistrationInformation的TXT文件,将此TXT文件发送至邮箱,之后就会有相关工作人员核对购买情况及注册信息后,将生成的授权license文件发送给您。 之后再将获得的license文件放入%:FineReport6.5WebReportWEB-INFresources文件夹下,重启设计器,即注册成功。
4.如何查看FineReport注册已经成功的信息?
已经注册的用户,需要查看自己是否已经注册成功,注册的版本以及并发数。 部署好没有lic的工程,然后登录管理平台:http://IP:端口/报表应用名称/ReportServer?op=fr_platform(IP、端口和应用名称根据用户Web应用服务器和报表应用名重新定义),点击管理系统&注册信息&版本信息,则可查看当前访问的服务器是否注册,未注册版本显示如下图:
价格和订购
1.FineReport报表软件的价格是多少?
具体的报价请联系FineReport商务电话025-,或者直接发邮件至 。
2.如何购买FineReport?
具体的报价请联系FineReport商务电话025-,或者直接发邮件至 。
1.购买FineReport报表工具后可提供什么样的服务?
购买后一年内可提供无限次免费电子邮件,电话和在线服务,服务时间为周一至周五,早上九点至下午五点半。 同时也可以提供现场技术支持或者现场培训等收费服务。 注:如果您需要向我们反应常见问题或者有任何关于我们产品的疑问,邮箱为。
(工作日:9:00-17:30)
商务咨询86-025-
技术:025-
商务:025-
投诉:025-1.5 和WebSocket的对比_HTML5数据推送应用开发_红黑联盟读书频道
1.5 和WebSocket的对比
本文所属图书&>&
本书详细介绍了SSE(Server-Sent Event,服务端推送事件)。SSE 是一种允许服务端向客户端推送新数据的HTML5 技术。利用这种技术,网页可以迅速加载,并且能及时获得用户感兴趣的最新数据。相比数据拉取,SSE&&
你可能听说过另一种叫做WebSocket 的HTML5 技术,它也能从服务端向客户端推送数据。那如何决定你是用SSE 还是WebSocket 呢?概括来说,WebSocket 能做的,SSE 也能做,反之亦然,但在完成某些任务方面,它们各有千秋。
WebSocket 是一种更为复杂的服务端实现技术,但它是真正的双向传输技术,既能从服务端向客户端推送数据,也能从客户端向服务端推送数据。
WebSocket 和SSE 的支持率差不多,大多数主流桌面两者都支持5。在Android 4.3 以及更早的版本中,系统默认浏览器两者都不支持,Firefox 和Chrome 则完全支持;Android 4.4 中,系统默认浏览器两者都支持;Safari 从5.0 开始支持SSE(iOS 系统从4.0 开始),但直到6.0 才正确地支持WebSocket(6.0 之前的Safari 所实现的WebSocket协议存在安全问题,所以一些主流浏览器已经禁用了基于这个协议的实现)。
与WebSocket 相比,SSE 有一些显著的优势。我认为它最大的优势就是便利:不需要添加任何新组件,用任何你习惯的后端语言和框架就能继续使用。你不用为新建、弄一个新的IP 或新的端口号而劳神,就像在现有网站中新增一个页面那样简单。我喜欢把这称为既存基础设施优势。
SSE 的第二个优势是服务端的简洁。我们将在第2 章中看到,服务端代码只需几行。相对而言,WebSocket 则很复杂,不借助辅助类库基本搞不定(我试过,令人痛苦)。
因为SSE 能在现有的HTTP/HTTPS 协议上运作,所以它能直接运行于现有的代理服务器和认证技术。而对WebSocket 而言,代理服务器需要做一些开发(或其他工作)才能支持,在写这本书时,很多服务器还没有(虽然这种状况会改善)。SSE 还有一个优势:它是一种文本协议,脚本调试非常容易。事实上,在本书中,我们会在开发和测试时用curl,甚至直接在命令行中运行后端脚本。
不过,这就引出了WebSocket 相较SSE 的一个潜在优势:WebSocket 是二进制协议,而SSE 是文本协议(通常使用UTF-8 编码)。当然,我们可以通过SSE 连接传输二进制数据:在SSE 中,只有两个具有特殊意义的字符,它们是CR 和LF,而对它们进行转码并不难。但用SSE 传输二进制数据时数据会变大,如果需要从服务端到客户端传输大量的二进制数据,最好还是用WebSocket。
二进制数据和二进制文件
如果你正打算通过WebSocket 或SSE 传输二进制文件,停下来想想是否真的需要这么做。用HTTP 不是更好吗?免得重复造轮子(权限控制、加密、代理、缓存、长连接,等等)。如果你关心的是连接套接字的有效使用,好好看看HTTP/2.06。
我说&大量的二进制数据&意思是你需要在浏览器中实现一个二进制网络协议,比如SSH。如果只是想向用户推送一个新的横幅广告图片,最好的方式是通过SSE(或者WebSocket)推送图片的URL,然后让浏览器通过HTTP 获取图片。
WebSocket 相较SSE 最大的优势在于它是双向交流的,这意味向服务端发送数据就像从服务端接收数据一样简单。用SSE 时,一般通过一个独立的Ajax 请求从客户端向服务端传送数据。相对于WebSocket,这样使用Ajax 会增加开销,但也就多一点点而已7。如此一来,问题就变成了&什么时候需要关心这个差异?&如果需要以1 次/ 秒或者更快的频率向服务端传输数据,那应该用WebSocket。0.2 次/ 秒到1 次/ 秒的频率是一个灰色地带,用WebSocket 和用SSE 差别不大;但如果你期望重负载,那就有必要确定基准点。频率低于0.2 次/ 秒左右时,两者差别不大。
从服务端向客户端传输数据的性能如何?如果是文本数据而非二进制数据(如前文所提到的),SSE 和WebSocket 没什么区别。它们都用TCP/IP 套接字,都是轻量级协议。延迟、带宽、服务器负载等都没有区别,除非&&呃?除非什么?
当你在享用SSE 的既存基础设施优势,并在客户端和服务端脚本之间设了一个网络服务器,区别就显现出来了。一个SSE 连接不仅使用一个套接字,还会占用一个Apache 线程或进程,如果用,它会为这个连接专门创建一个 新实例。Apache 和PHP 会使用大量的内存,这会限制服务器所能支持的并行连接数。所以,要做到用SSE 在数据传输性能上和WebSocket 完全一样,需要写一个你自己的后端服务器,当然,那些在任何情况下都会用自己的服务器并使用Node.js 的人,会觉得这有什么稀奇的。第2 章会介绍怎么用Node.js 来做这些。
说一下WebSocket 在旧版本浏览器上的兼容。写这本书的时候,大约超过2/3 的浏览器支持这些新技术,移动端浏览器的支持率会低一些。依惯例,每当需要双向套接字时,就会用到Flash,并且WebSocket 的向后兼容通常是用Flash 来做,这已经相当复杂了,如果浏览器上没有Flash,情况更糟。概括来说,WebSocket 难兼容,SSE 易兼容。
注4: Kickstarter 是一个创意方案的众筹网站平台。&译者注
注5: IE 是个例外,即便IE11 都还不支持原生SSE,IE10 添加了WebSocket 支持。
注6: 参见http://en.wikipedia.org/wiki/HTTP_2.0,或者Ilya Grigorik 写的《Web 性能权威指南》(人民邮电出版社)。
注7: 在HTTP/1.1 中大概几百字节,如果请求中有大量的cookie 或其他东西,这个量会更多一些。在HTTP/2.0 中会少很多。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。推送到 Kindle 的服务已停止,如需 mobi 版,请看
第 2 章 玩转SSE
第 3 章 迷人的真实数据推送应用
第 4 章 别安于现状
第 5 章 走出象牙塔,打造产品级品质
第 6 章 向后兼容:其他数据推送策略
第 7 章 向后兼容:另辟蹊径
第 8 章 更多关于SSE标准的细节
第 9 章 认证授权:谁在敲门
附录A SSE标准
附录B 重构:JavaScript全局变量,对象,闭包
附录C PHP
原书出版社
O'Reilly
他们拥有这本书& PHP实现 HTML5数据推送SSE原理
PHP实现 HTML5数据推送SSE原理
SSE是一种允许服务器端向客户端推送新数据(简称数据推送)的HTML5技术。
当数据源有新数据时,服务器端能立刻发送给一个或多个客户端,而不用等客户端来请求,这些新数据可能是突发新闻、最新股票、上线朋友的聊天信息、新的天气预报、策略游戏中的下一步等。
SSE适用于更新频繁、低延迟并且数据都是从服务端到客户端。它和WebSocket的区别:
1)便利,不需要添加任何新组件,用任何习惯的后端语言和框架就能继续使用,不用为新建虚拟机弄一个新的IP或新的端口号而劳神。
2)服务器端的简洁。因为SSE能在现有的HTTP/HTTPS协议上运作,所以它能够直接运行于现有的代理服务器和认证技术。
WebSocket相较SSE最大的优势在于它是双向交流的,这意味着服务器发送数据就像从服务器接受数据一样简单,而SSE一般通过一个独立的Ajax请求从客户端向服务端传送数据,因此相对于WebSocket使用Ajax会增加开销。因此,如果需要以每秒一次或者更快的频率向服务端传输数据,就应该用WebSocket。
浏览器端:
&!doctype html&
&meta charset=&UTF-8&&
&title&basic SSE test&/title&
&pre id = &x&&initializting...&/pre&
&!--之所以使用pre标签而不是p或者div是为了确保数据能以它被接受时的格式呈现,而不会修改或格式化--&
var es = new EventSource(&basic_sse.php&);
es.addEventListener(&message&,function(e){
document.getElementById(&x&).innerHTML += &\n&+e.
},false);//使用false表示在冒泡阶段处理事件,而不是捕获阶段。
服务器端:
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$time = date('Y-m-d H:i:s');
echo 'retry: 1000'.PHP_EOL;
echo 'data: The server time is: '.$time.PHP_EOL.PHP_EOL;
注意事项:
1.“Content-Type: text/event-stream”是专门为SSE设计的MIME类型`
2.retry可以定义推送间隔,如果不发送这个指令,默认间隔5000毫秒`
3.每行指令后面要有换行 \n ,用php的请用兼容方案 PHP_EOL`
4.最后一条指令要两个换行`
5.未完,其他详细容后发布`

我要回帖

更多关于 客户端消息推送 的文章

 

随机推荐