zoukankan      html  css  js  c++  java
  • websocket

    参考 阮一峰:http://www.ruanyifeng.com/blog/2017/05/websocket.html

    1、什么是websocket?

      服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话(全双工通信),属于服务器推送技术的一种。

    其他特点包括:
    
    (1)建立在 TCP 协议之上,服务器端的实现比较容易。
    
    (2)与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。
    
    (3)数据格式比较轻量,性能开销小,通信高效。
    
    (4)可以发送文本,也可以发送二进制数据。
    
    (5)没有同源限制,客户端可以与任意服务器通信。
    
    (6)协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。
    

    2、websocket的使用方法和属性

      2.1 使用websocket怎么让客户端与服务器连接?

    WebSocket 对象作为一个构造函数,用于新建 WebSocket 实例。
    var ws = new WebSocket('ws://localhost:8080');
    执行上面语句之后,客户端就会与服务器进行连接。
    

      2.2 WebSocket 属性

      

      2.3  WebSocket 事件

      

      2.4 WebSocket 方法

          

    3、webSocket 创建原理

    WebSocket 协议本质上是一个基于 TCP 的协议。

    为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息"Upgrade: WebSocket"表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。

    4、webSocket与http的区别?

      http协议是短链接,因为请求之后,都会关闭连接,下次重新请求数据,需要再次打开连接。

      WebSocket协议是一种长连接,只需要通过一次请求来初始化链接,然后所有的请求和响应都是通过这个TCP链接进行通信。

     

    5、webSocket与socket的区别?

      socket是应用层与TCP/IP协议通信的中间软件抽象层,它是一组接口。

      websocket协议是一个完整的应用层协议,包含一套完整的API。

     

  • 相关阅读:
    杭电acm1517
    杭电acm1228
    杭电acm1859
    杭电acm1124
    杭电acm1327
    CPP Templates 之 template 关键字的用法技巧
    malloc与calloc区别
    CPP Templates 之 类模板的继承
    CPP Templates 之 模板演绎的注意事项
    CPP Templates 之 局部类模板特化
  • 原文地址:https://www.cnblogs.com/liumcb/p/13941710.html
Copyright © 2011-2022 走看看