文章标题

WebSocket协议之前

  • 互联网协议 IP(Intent Protocol) :负责在互联网的两台主机之间传递数据封装包
  • 传输控制协议 TCP(Transsmission Control Protocol) : 跨越互联网,在两个端点之间可靠地双向传输字节流的一个管道

WebSocket与TCP/IP对比 P43

  • WebSocket与http协议一样都是基于TCP的,所以他们都是可靠的协议,Web开发者调用的WebSocket的send函数在browser的实现中最终都是通过TCP的系统接口进行传输的。
  • WebSocket和Http协议一样都属于应用层的协议,那么他们之间有没有什么关系呢?答案是肯定的,WebSocket在建立握手连接时,数据是通过http协议传输的,正如我们上一节所看到的“GET/chat HTTP/1.1”,这里面用到的只是http协议一些简单的字段。但是在建立连接之后,真正的数据传输阶段是不需要http协议参与的。

WebSocket协议

  • WebSocket是建立在HTTP、SOAP、WSDL等通用协议的基础之上
    1. SOAP(Simple Object Access Protocol,简单对象访问协议): 是一种轻量级的、简单的、基于XML的协议,被设计用于在分布式环境中交换格式化和固化信息的简单协议。进行通信,进行数据访问传输,就必须依赖于一定的协议,而SOAP正是WebService通信中所依赖的一种协议。目前经常使用的SOAP协议有两个版本:SOAP 1.1 和 SOAP 1.2。
    2. WSDL(Web Services Description Language,即Web服务描述语言)是一种用来描述Web服务的XML语言,它描述了Web服务的功能、接口、参数、返回值等,便于用户绑定和调用服务。它以一种和具体语言无关的方式定义了给定Web服务调用和应答的相关操作和消息。
    3. HTTP(HyperText Transfer Protocol,超文本传输协议)HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。

初次握手

  • 每个WebSocket请求都始于一个HTTP请求,不同的是包含一个特殊的首标——Upgrade,表示客户端将把连接升级到不同的协议(就是WebSocket),这就是初始握手阶段
    其底层还是tcp/ip连接
  • 握手 WebSocket服务器收到Browser/UA发送来的握手请求后,如果数据包数据和格式正确,客户端和服务器端的协议版本号匹配等等,就接受本次握手连接,并给出相应的数据回复,同样回复的数据包也是采用http协议传输。
  • 连接成功就会触发onOpen消息,就可以用send方法向服务器发数据

关闭握手

  • 连接可以在任何时候关闭。当WebSoket关闭时,终止连接的端点可以发送一个数字代码,以及一个表示选择关闭套接字原因的字符串

WebSocket事件

  • 客户端不需要主动轮训服务器得到更多信息要开始监听事件,只要为WebSocket对象添加回调函数。也可以使用addEventListener()

    四个不同事件

    • open
    • message
    • error
    • close

      1. open:
        一旦服务器响应了WebSocet连接请求,open事件触发并建立一个连接。open事件对应的回电函数称为onopen。
      2. message对应客户端的textMessage:
        这个消息包含来自服务器的数据。message事件在接收到消息时触发,对应于该事件的回调函数是onmessage(onTextMessage)
      3. error :
        在响应意外故障的时候触发。对应的回调函数为onerror。错误还会导致WebSocket关闭,如果你接受到一个error,肯呢个很快就会触发close。
        close事件中的代码和原因有可能告诉你错误的根源。
      4. close :
        在连接关闭时触发

WebSocket方法

  1. send():
    使用WebSocket在客户端和服务器之间建立全双工双向连接后,就可以在连接打开时电泳send()方法,调用close()终止连接。
  2. close():
    关闭WebSocket连接或者终止连接。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值