WebSocket核心总结

  1. 介绍

    websocket是H5规范的连续性里面推出的一个协议,websocket是一种全双工,双向,单套接字的连接。 http是单项的半双工的一种通信协议,而有些地方需要用到实时通信的效果,所以websocket营运而生,目前流行的浏览器都支持这个协议,例如 Chrome,Safari,Firefox,Opera,IE等等。
    之前没有ws协议http主要靠轮询,长轮询,流化达到实时通信的效果,但是这种方式性能太低,最后ws取代了http的实时通信。
    websocket是建立在tcp协议之上的运行在应用层之上的一种协议,它和http在同一层上面,websocket并不能向服务器发起请求,websocket的第一次是http请求,当websocket建立握手连接时,数据通过http建立之后,协议就升级为ws协议,此后就不需要http了。
  1. websocket协议
ws协议是在IP/TCP基础上的协议,并依赖http的一种实时通信的协议
IP 互联网协议:在互联网的两台主机之间传输数据封包
TCP 传输控制协议: 跨域互联网,在两个端点之间可靠地双向传输数据字节流的一个管道
HTTP 超文本传输协议 :一种专门用于web应用的一门协议
General
-------
Request URL:ws://172.16.2.103/tcp_proxy
Request Method:GET
Status Code:101 Switching Protocols
Response Headers
view parsed

Response Headers
----------
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: 3+hTgU+8m62EysDHK2Afh2QGsNE=
Request Headers
view parsed

Resquest Headers
----------
GET ws://172.16.2.103/tcp_proxy HTTP/1.1
Host: 172.16.2.103
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: http://172.16.2.103
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: tooltipdiv_closed=true; tooltipdiv_iconized=dock; applyfunc=; ShutdownType=0; ScheduleType=1; CalllogType=5; ExpertMode=1; AccountIndex=1; Mainpage=call; Subpage=call; MyLanguage=zh; phonecookie="493e3b59"; type=admin; Version="1"; Max-Age=900; needchange=1; ver=0.1.12.15; cascade=0; logindate=1482457327965; logout=-1
Sec-WebSocket-Key: sbeFZOVml+sifQGnTtMRVA==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
  1. websocket API
 websocket事件:
    ws.onopen = function(){ws.send(“Test!”); };  

    ws.onmessage = function(evt){console.log(evt.data);ws.close();};  

    ws.onclose = function(evt){console.log(“WebSocketClosed!”);};  

    ws.onerror = function(evt){console.log(“WebSocketError!”);};  
 websocket方法:
    send()
    close()
 websocket对象特征:
    readyState
         特征常量:readyState.CONNECTING   值为0   正在连接还未连接成功    
                  readyState.OPEN         值为1   连接成功
                  readyState.CLOSEING     值为2   正在进行关闭握手
                  readyState.CLOSED       值为3   已经关闭            
    bufferedAmount       进入队列,尚未发送的字节数,可以检查流量
    protocol             协议
  1. websocket的安全
   使用 wss: URI 方案
   var webSocket = new Windows.Networking.Sockets.MessageWebSocket();
   webSocket.connectAsync("wss://www.example.com").done(function() {
        // connect succeeded
       }, function(e) {
      // connect failed
  });
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值