web socket 心跳包的实现方案05/30/2010
现在网络环境错综复杂,socket心跳包是获得健康强壮的连接的有效解决方案,今天,我们就在web socket中实现心跳包方案,是的,尽管我们只是做一个简单的聊天室,但我们让他稳定可靠一些一点也没有错。
我的心跳包方案很是简单,原理就是间隔发送心跳包数据给服务器,服务器在一定时间内发回心跳包响应,对比超时限定,如果超过设定的超时时间,则认为当前与服务器的websocket连接已经断开,关闭当前web socket连接,善后处理,例如重新连接,或者弹出提示……
比较有用的核心代码是这样子的:
function keepalive( ws ){ var time = new Date(); if( last_health != -1 && ( time.getTime() - last_health > health_timeout ) ){ //此时即可以认为连接断开,可设置重连或者关闭连接 $("#keeplive_box").html( "服务器没有响应." ).css({"color":"red"}); //ws.close(); } else{ $("#keeplive_box").html( "连接正常" ).css({"color":"green"}); if( ws.bufferedAmount == 0 ){ ws.send( '~H#C~' ); } } }
这就是心跳函数,发送心跳包和检测心跳健康度。我们将其植入到websocket的onopen事件中,来开启心跳检测。像这样:
var ws = new WebSocket( to_url ); ws.onopen=function(){ $("#statustxt").html("connected."); $("#send_btn").attr("disabled", false); heartbeat_timer = setInterval( function(){keepalive(ws)}, 1000 ); }
是的,这样子就可以实现web socket的心跳包,这里有些类似于多线程的发送方式,在发送心跳包的同时,并不影响正常的数据通信,我们的例子还是以上次的websocket聊天室来改进,我们可以发现,心跳包运行过程中,并不会干扰到我们的正常聊天。服务端我也进行了一些修改,原理类似,在超过一定时间内都没有收到客户端发来的心跳包,则认为该客户端已经掉线,关闭连接,收回资源。
Demo在这里:http://www.zendstudio.net/libs/websocket/chat/demo2.html
现在,有一个新的问题出现,如果我们要用php socket来模拟心跳包技术,该怎么实现?各位路过的朋友请多指教,感恩戴德。
1,449位童鞋围观 | 3条评论分类: web前端编程,互联网2.0,网络通信协议 标签: html、html5、websocket
相关推荐
Web 前端技术方案 一、前端技术体系的基本架构 前端技术体系的基本架构应遵循以下原则: 1. 围绕业务发展:前端技术体系的设计应紧扣业务需求,确保技术架构的演进是为了支撑业务的发展。 2. 结合团队规模和特点...
希望通过本文,读者可以更好地了解Web前端框架技术,并更好地选择合适的框架技术来开发和部署Web应用程序。 一、Web前端框架技术的发展历史 Web前端框架技术的发展历史可以追溯到20世纪90年代,当时的Web开发主要...
Web前端开发技术课后习题答案.pdf
《Web前端开发技术储久良第三版答案》涵盖了前端开发领域的关键知识点,主要针对储久良教授编著的教材第三版中的习题和实验提供了详尽的解答。这本书旨在帮助学习者深入理解Web前端开发的核心概念和技术,通过解决...
Web前端技术是现代互联网开发的重要组成部分,主要负责构建用户在浏览器中看到和交互的网站界面。这份名为"Web前端技术(期末复习 选填、判断、简答、编程等超全总结).zip"的压缩包文件包含了全面的Web前端学习资源...
Web前端黑客技术揭秘.
web前端技术汇总/web前端技术汇总/web前端技术汇总/web前端技术汇总
Web前端技术课程实训报告.doc
Web前端是用户与网站或APP交互的第一...随着Web前端技术的不断发展,这些基础知识是前端开发者必须掌握的。在实际开发过程中,还需不断更新知识,学习和运用最新的前端技术和工具,以适应快速变化的互联网行业需求。
《Web前端开发技术(第2版)》是储久良教授编著的一本关于Web前端开发的教科书,此压缩包包含该书的课后实验材料与源代码,是学习Web前端技术的重要辅助资源。储久良教授在Web开发领域有着深厚的理论基础和丰富的...
综上所述,"web前端技术"涵盖的内容非常广泛,涉及到从基础的HTML、CSS、JavaScript到高级的框架、工具和最佳实践。".NET Web前端"特别强调了在.NET环境中整合前端技术的能力,例如利用MiniUI这样的框架进行高效开发...
课程思政可以帮助学生更好地理解 Web 前端设计的技术原理和实现方法,而 OBE 理念可以帮助学生更好地掌握技术技能和解决问题的能力。 此外,研究还表明,课程思政和 OBE 两种理念的融合可以提高教学的效果和效率。...
总的来说,这个项目涉及了前端开发的多个核心领域,包括用户体验设计、数据交互、动态功能实现和性能优化,是学习和实践Web前端开发的好实例。通过分析和实现这样的项目,开发者能够深入理解Web应用的完整生命周期,...
html5及css3web前端开发技术习题答案解析
Web前端的黑客攻防技术是一门非常新颖且有趣的黑客技术,主要包含Web前端安全的跨站脚本(XSS)、跨站请求伪造(CSRF)、界面操作劫持这三大类,涉及的知识点涵盖信任与信任关系、Cookie安全、Flash安全、DOM渲染、...
Web 前端开发试卷及答案 以下是根据给定的文件生成的相关知识点: HTML 基础知识 1. 常用的 WEB 标准静态页面语言是 HTML。 2. 在 HTML 中,TR 是 table row 的缩写,TD 是 table data 的缩写。 3. 在 HTML 中,...
Web 前端 PPT 课件知识点总结 本资源摘要信息涵盖了 Web 前端 PPT 课件的主要知识点,包括 CSS 的基础知识、选择器、继承特性、层叠特性、页面基本设置、样式表、网页风格设计等。 1. CSS 的基础知识 CSS 是一种...
《Web前端开发技术》是一门专业基础性课程,是后续计算机语言程序和软件开发类课程的基础,也是为了让大学一年级学生提早学会的一门入门级技术操作性课程。
**WEB前端技术笔记整理** 前端开发是构建网页或应用程序用户界面的关键部分,它涉及与用户的交互和页面动态呈现。在本笔记中,我们将深入探讨HTML、JavaScript(JS)、jQuery(JQ)、CSS以及HTML5这五种核心技术,...
### WEB前端开发性能优化知识点详解 #### 一、性能优化 **1. 减少HTTP请求数** - **背景**: 在网页加载过程中,每个图片、CSS文件、JavaScript文件、Flash对象等都会产生一个HTTP请求,这会显著增加网页加载时间...