虽然两者都实现了html5 sse,但是两者处理方式是不同的。
若在服务器端处理的时候。若没有返回数据,在FF下会中断SSE连接,并且都不会在连接上了。
public function sse_connect()
{
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$result = D("Plan")->checkIsUpdate($_GET['planID'], $_GET['editTime']);
if ($result == "update") {
echo "event: update\n\n";
echo "data: {$result}\n\n";
ob_flush();
flush();
}
}
因此必须每次连接都有返回数据才行。而在CHROME下则可以处理这种情况。没有返回也可以再次发起连接。
Fireforx上sse是每5秒发起一次连接。而chrome是3秒。
Chrome:
Sat Oct 12 2013 16:36:06 GMT+0800 (中国标准时间) article.js:2067
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed article.js:2075
Sat Oct 12 2013 16:36:09 GMT+0800 (中国标准时间) article.js:2067
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed article.js:2075
Sat Oct 12 2013 16:36:12 GMT+0800 (中国标准时间) article.js:2067
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed article.js:2075
Sat Oct 12 2013 16:36:16 GMT+0800 (中国标准时间) article.js:2067
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed
Firefox:
Date {Sat Oct 12 2013 16:36:29 GMT+0800}
article.js (line 2067)
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed
article.js (line 2075)
Date {Sat Oct 12 2013 16:36:34 GMT+0800}
article.js (line 2067)
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed
article.js (line 2075)
Date {Sat Oct 12 2013 16:36:39 GMT+0800}
article.js (line 2067)
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed
SSE的缺点是,定制性不高,API的参数很少,比如不能自定义轮询的时间间隔。
它本质上就是轮询get 类型的AJAX。
在特定的需求下会比较有用,比如做个时间显示。如果用JS写,不能保证时间一致,用服务器端推送时间就能保证每个客户端的时间都是一致的。还有,比如间隔消息推送之类的需求。
分享到:
相关推荐
标题“support-protocol-v8-chrome-15-firefox-6”揭示了这是一个与Web开发相关的资源,特别是针对HTML5的Server-Sent Events (SSE)或WebSocket协议的实现,适用于Chrome 15和Firefox 6这两个浏览器版本。...
- **Mozilla Firefox**:支持(自Firefox 6.0开始) - **Google Chrome**:支持(自Chrome 6开始) - **Opera**:支持(自Opera 11开始) - **Safari**:支持(自Safari 5.0开始) #### Maven设置 由于Spring 4.2...
在浏览器支持方面,大多数现代浏览器都支持HTML5,包括苹果Safari、谷歌Chrome、火狐Firefox和Opera等,就连较旧的Internet Explorer 9也提供一定程度的HTML5支持。此外,预装在iPhone、iPad和安卓手机上的移动...
实际上,许多最新的浏览器(如Safari 5、Firefox、Chrome、Opera和Internet Explorer 9)以及智能手机平台(如iPhone和Android)已经支持HTML5的部分功能。尤其是在智能手机和平板电脑等移动设备上,HTML5的应用变得...
- **调试工具**:Chrome DevTools、Firefox Developer Edition等工具的使用技巧。 **3. 代码示例与解释** - 提供了详细的代码示例,包括但不限于JavaScript脚本、CSS样式等,便于读者理解和实践。 #### 四、书籍...
SSE在主流浏览器中的支持广泛,包括Firefox 6.0+、Chrome 6.0+、Safari 5.0+、Opera 11.0+、iOS Safari 4.0+、Opera Mobile 11.1+、Chrome for Android 25.0+、Firefox for Android 19.0+ 和 Blackberry Browser 7.0...
API Chrome IE Firefox Safari Opera SSE 6.0 No 6.0 5.0 1.5 ##2 关键js对象 EventSource EventSource接口用来管理服务器发送事件.你可以通过将EventSource对象的onmessage属性指向一个自定义方法来...
- **Firefox**: 使用**Gecko**内核。 - **Safari**: 使用**WebKit**内核。 - **Opera**: 早期使用**Presto**内核,后来改为**Blink**内核。 2. **内核特性比较:** - **WebKit**: 开源项目,广泛应用于多个...
由于这是一个IE特有功能,它不适用于其他浏览器,如Firefox、Chrome或Safari。HTMLFile对象通常通过JavaScript进行操作,可以用于实现文件上传、下载以及在客户端和服务器间进行数据交换,为创建实时的Web应用程序...
4. **兼容性**:SignalR支持各种浏览器和服务器平台,包括Internet Explorer、Chrome、Firefox以及.NET、Java和Node.js服务器。 在Mvc5项目中集成SignalR,首先需要安装必要的NuGet包。在Visual Studio中,可以通过...
9. **兼容性**:模板需要考虑各种浏览器的兼容性,包括Chrome、Firefox、Safari、Edge和Internet Explorer等。 10. **响应式设计**:随着移动设备的普及,聊天页面需要适应不同尺寸的屏幕,实现响应式布局。 11. *...
- 考虑到跨浏览器兼容性,hash-exchange库应该支持主流浏览器,包括Chrome、Firefox、Safari、Edge等。 - 性能优化:为了确保高效的数据交换,库可能采用了异步更新策略,避免阻塞主线程。 5. 前端开源库的重要性...
开发者应测试其代码在各种浏览器(如Chrome、Firefox、Safari等)下的表现,确保兼容性和稳定性。 通过以上分析,我们可以看到,"JSWebRTC简易播放器 v1.0-源码.zip"不仅是一个实用的学习资源,也是进一步探索...
最新版本支持除Internet Explorer之外的所有现代浏览器(Safari,Chrome,Firefox)。 Internet Explorer主要缺少对SSE的支持。 即使Eclipse SmartHome框架非常灵活,Paper UI也非常简单,仅支持有限的用例。 与...
10. **兼容性测试**:最后,设计师和开发者会进行广泛的浏览器兼容性测试,确保在主流浏览器(如Chrome、Firefox、Safari、Edge等)以及不同操作系统(如Windows、macOS、iOS、Android)上都能正常运行。 总的来说...
同时,它也适用于多种浏览器,包括Chrome、Firefox、Safari和Internet Explorer。 源码分析: SignalR的源码包含了多个项目,包括核心库、服务器端组件、客户端库以及示例应用。通过查看源码,我们可以深入理解其...
主流浏览器,如Chrome、Firefox、Safari和Opera,都支持Server-Sent Events,但Internet Explorer是个例外。要实现Server-Sent Events,客户端通常会创建一个`EventSource`对象,并指定服务器上提供事件流的URL。...
- **浏览器兼容性**:不同的浏览器对WebRTC的支持程度不同,需要关注Chrome、Firefox、Safari等主流浏览器的实现差异。 在"webrtcDemo.rar"中,你可以期待找到一个简单的WebRTC应用场景,比如一对一视频聊天或者...
目前,大多数现代浏览器都支持WebSocket协议,包括Chrome、Safari、Firefox、Opera和Internet Explorer。 WebSocket协议自草案发布以来,已经经历了多个版本,最新的稳定版本是第17版,对应协议版本号13。虽然...