当前位置: 移动技术网 > IT编程>网页制作>Html5 > webkit HTML5 WebSocket 综合分析 2

webkit HTML5 WebSocket 综合分析 2

2018年03月22日  | 移动技术网IT编程  | 我要评论

饥饿游戏电影下载,禁止性爱2,女性疱疹

上一篇文章介绍了 websocket理论,本篇分析websocket协议客户端部分在webkit浏览器引擎上的实现。

websocket api, 协议RFC 6455.

webkit上websocket实现代码在WebCore/websockets目录下


 
一下为webkit  WebSocket JavaScript idl  接口的定义(websocket.idl):
 
 
其中URL 属性代表WebSocket 服务器的网络地址,协议通常是”ws”,send 方法就是发送数据到服务器端,close 方法就是关闭连接。除了这些方法,还有一些很重要的事件:onopen,onmessage,onerror 以及onclose。
 
 
 
浏览器提供的js接口给web开发人员使用,下面面为客户端
 
 
 
 
 
上面javascript 代码 为客户端发起请求流程,首先是
创建WebSocket对象,指定服务器端url. 这里创建时即发起tcp请求给服务器,所以创建的过程相对来讲是个堵塞动作,webkit 内部实现在V8WebsocketCustom.cpp中,constructorCallback 函数为构造函数入口,解析url及protocol后 调用websocket类的connect 函数发起tcp请求
 webSocket->connect(url, toWebCoreString(protocol), ec);
void WebSocket::connect(const String& url, const Vector<String>& protocols, ExceptionCode& ec)(websocket.cpp)
函数首先会做一些语法检测,比如协议是否为ws或wss(安全的ws), 然后建立WebSocketChannel,建议一个websocoket通道代表此连接实例(WebSocketChannel.cpp),
最后调用~WebSocketChannel 提供的connect 函数内部先创建握手对象WebSocketHandshake用于保存握手信息,didCreateWebSocket -> didCreateWebSocketImpl发起tcp请求。
客户端在构造完websocket对象时已经发起连接请求,然后 指定服务器端事件回调,比如onopen 事件表示连接建立完成,onmessage标识服务器有消息发送





想了解更多websocket 可以访问这里

 

csdn lidp http://blog.csdn.net/perfectpdl

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网