HTML5数据推送SSE原理及应用开发的图文详解


当前第2页 返回上一页

需要注意的是:使用服务器端数据之前最好做一下检查,以防潜在的javascript注入攻击。

php代码

1

2

3

4

5

6

7

<?php

    header('Content-Type: text/event-stream');

    header('Cache-Control: no-cache');

    $time = date('r');

    echo "data: The server time is: {$time}\n\n";

    flush();

?>

“Content-Type: text/event-stream”是专门为SSE设计的MIME类型,

效果截图

什么时候数据推送是错误的选择

首先考虑静态的情况,不引入数据推送,每当用户打开一个页面,在浏览器和服务器之间就会打开i一个套接字连接,服务器手机信息然后返回给用户,可能很简单,就像从磁盘上加载一个静态的HTML文件或一张图片一样,也可能很复杂,就像要运行一段用以连接很多数据库的后台语言。这里的关键点就是,一旦返回了所需的信息,套接字就会关闭,每个HTTP请求都会打开一个这种生命周期相对较短的套接字连接,这些套接字是服务器上有限的资源,每当它们完成既定任务,就会被回收以循环再利用。

现在对比看一下数据推送。一个请求永远不会完成,总是有很多信息要发送,所以套接字会一直保持打开状态。显然,因为它们是有限的资源,所以同一时刻的SSE连接数会有限制。

想象一种情况,你在为你最新的应用提供电话服务支持,有10个接线中心员工为1000个用户提供服务,用户遇到问题,其中一个接线员接线,然后挂线。新的客户呼叫在排队,知道其中一个接线员挂线,这是典型的网络服务模式。

但是,现在有个客户打过来说,我现在没有问题,但是接下来几个小时都会用到你们的产品,并且如果遇到问题,我希望你们立即回复。这个客户将与接线员保持通话几个小时,那么呼叫中心的10%服务资源就被浪费。如果有10个这样的客户,那么其他990个客户就无法呼叫。这就是数据推送模式。

当然,这并不总是坏事,如果这个客户一下午每隔几秒钟就有一个问题,这种情况保持电话通畅不但没有浪费10%服务资源,反而会增加。因为每个问题都需要新打一个电话(就像数据拉取),接线员需要花额外的时间,验证客户身份,调出账户,降低服务效率。保持电话通常不仅使得客户更满意,也会提高呼叫中心的工作效率,这就是数据推送的最适合场景。


以上就是HTML5数据推送SSE原理及应用开发的图文详解的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

h5之scrollintoview用法详解

详细介绍基于HTML5 的webgl技术构建3d场景的图文代码(一)

HTML5中<template>标签的详细介绍(图文)

h5在canvas中实现自定义路径动画

详谈html中script标签(附代码)

HTML5实现下雪效果的实例代码分享

react高阶组件(装饰器)的介绍(代码示例)

HTML5 实现访问本地文件的方法

怎样开发优秀的HTML5游戏-迪斯尼《寻找奥兹之路》游戏技术详解(一)

使用HTML5里的classlist操作css类的详细介绍

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...