摘要:
前面学习了HTML5中websocket的握手协议、打开和关闭连接等基础内容,最近用php实现了与浏览器websocket的双向通信。在学习概念的时候觉得看懂了的内容,真正在实践过程中还是会遇到各种问题,网上也有一些关于php的websocket的实现,但是只有自己亲手写过之后才知道其中的感受。其中,google有一个开源的phpwebsocket类(https://code.google.com/p/phpwebsocket/),但是从其握手过程中可以明显看出,这还是最初的websocket协议,请求头中使用了两个KEY,并非version 13(现行版本)。下面是本人实践过程,同时封装好了 阅读全文
随笔分类 - 前端
Websocket协议数据帧传输和关闭连接
2014-03-07 00:52 by OshynSong, 3636 阅读, 收藏,
摘要:
之前总结了关于Websocket协议的握手连接方式等其他细节,现在对socket连接建立后的数据帧传输和关闭细节总结。一、数据帧格式数据传输使用的是一系列数据帧,出于安全考虑和避免网络截获,客户端发送的数据帧必须进行掩码处理后才能发送到服务器,不论是否是在TLS安全协议上都要进行掩码处理。服务器如果没有收到掩码处理的数据帧时应该关闭连接,发送一个1002的状态码。服务器不能将发送到客户端的数据进行掩码处理,如果客户端收到掩码处理的数据帧必须关闭连接。基本的数据帧为一个opcode、一个payload长度和发送的应用数据,根据ABNF的定义,详细信息如下图这里使用的是数据存储的位(bit),当进 阅读全文
Websocket协议之握手连接
2014-02-28 22:59 by OshynSong, 20349 阅读, 收藏,
摘要:
Websocket协议是为了解决web即时应用中服务器与客户端浏览器全双工通信的问题而设计的,是完全意义上的Web应用端的双向通信技术,可以取代之前使用半双工HTTP协议而模拟全双工通信,同时克服了带宽和访问速度等的诸多问题。协议定义为ws和wss协议,分别为普通请求和基于SSL的安全传输,占用端口与http协议系统,ws为80端口,wss为443端口,这样可以支持HTTP代理。协议包含两个部分,第一个是“握手”,第二个是数据传输。一、Websocket URI定义的两个协议框架ws和wss与http类似,而且各自部分的要求也是在HTTP协议中使用的一样,各自的URI如下:ws-URI = & 阅读全文
即时Web通信总结
2014-02-24 21:57 by OshynSong, 2638 阅读, 收藏,
摘要:
即时Web通信在一些对数据实时性要求特别严格的应用中十分重要,如监控系统、报价系统、股票交易系统和即时在线聊天应用等,由于http协议设计当初是为了服务器端响应客户端的请求而设计的,只能在客户端主动发送请求后进行处理然后返回结果。为了实现上述各种即时应用的功能,出现了一系列“Hack”的手段来模拟实现服务器端主动推送信息的功能,也就是模拟了服务器和客户端直接全双工的通信。这样主要考虑的是如下问题:客户端如何接收、处理信息,是否需要使用套接口或是使用远程调用。客户端呈现给用户的是 HTML 页面还是 Java applet 或 Flash 窗口。如果使用套接口和远程调用,怎么和 JavaScri 阅读全文
javascript进阶——分离式DOM脚本编程
2014-02-24 00:21 by OshynSong, 1189 阅读, 收藏,
摘要:
编写分离式(unobstrusive)代码意味着对HTML内容的完全分离:数据来自服务器端,javascript代码用来动态化和交互。这种分离的好处是在不同浏览器之间使用是可以完全降级或升级运行,对于高级特性浏览器提供更丰富的交互,不支持高级特性的浏览器可以降级运行其所支持的部分。一、DOMDOM是表达XML文档的应用最广泛的方式,虽然可能未必是最快或者最轻量级和最易使用的,但是大部分web开发语言都提供了其实现。javascript最终的操作都是和网页里的HTML元素进行交互,而HTML是XML的一个子集,因此DOM是简化操作的出色工具,是开发分离式javascript代码的第一步,无非就是 阅读全文
javascript进阶——测试和打包分发
2014-02-22 22:10 by OshynSong, 833 阅读, 收藏,
摘要:
建立一个面向对象的好的代码基础后,为了达到代码重用的目的,通过调试使用适当的测试用例进行测试尤为必要,之后就是打包分发的主题。一、调试与测试1、调试Firebug:包含了错误控制台、调试器、DOM查看器。可以很好的定位DOM结构。Chrome:拥有控制台、DOM查看器等于Firebug几乎类似功能。IE浏览器:错误控制台显示错误,F12打开开发者工具,提供了javascript调试工具。Venkman:Mozilla发起的javascript调试器项目,它与javascript引擎本身紧密集成,是你能够对代码的执行做出精确的控制。2、测试为代码构建可靠的测试用例时,可以为自己省下无数调试的时间 阅读全文
javascript进阶——面向对象特性
2014-02-22 00:39 by OshynSong, 352 阅读, 收藏,
摘要:
面向对象的javascript是这门语言被设计出来时就考虑的问题,熟悉OOP编程的概念后,学习不同的语言都会发现不同语言的实现是不同的,javascript的面向对象特性与其他具有面向对象特性的语言的实现的区别比较大,通过不断编程实践才能逐渐体会到面向对象的优点从而形成自己独特的javascript面向对象实现方式,这也是编写可重用代码的关键。一、语言特性对象(Object)是组成javascript 的基本单元,javascript中一切都是对象。其中引用(reference)、作用域(scope)、闭包(closure)和上下文(context)是其最重要的几个部分。1、引用引用是一个指向 阅读全文
浙公网安备 33010602011771号