zoukankan      html  css  js  c++  java
  • WebSocket

    webSocket

    • WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。
    • WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
    • HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。
    • WebSocket 协议本质上是一个基于 TCP 的协议。
    • 建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息"Upgrade: WebSocket"表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。
    • 可以发送文本,也可以发送二进制数据
    • 协议标识符是ws(如果加密,则为wss)ws://example.com:80/path

    客户端请求

    GET / HTTP/1.1
    Upgrade: websocket // 必须设置 Websocket,表示希望升级到 Websocket 协议
    Connection: Upgrade // 必须设置 Upgrade,表示客户端希望连接升级
    Host: example.com
    Origin: http://example.com
    Sec-WebSocket-Key: sN9cRrP/n9NdMgdcy2VJFQ==  // 随机的字符串
    Sec-WebSocket-Version: 13 // 表示支持的 Websocket 版本
    

    服务器响应

    HTTP/1.1 101 Switching Protocols
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Accept: fFBooB7FAkLlXgRSz0BT3v4hq5s=
    Sec-WebSocket-Location: ws://example.com/
    
  • 相关阅读:
    装饰器
    FLASK
    Flask第一个实例
    各种各样的PyQt测试和例子
    项目实战:天气信息查询
    窗口设置、QSS
    槽和信号
    布局
    打印机
    菜单栏、工具栏、状态栏
  • 原文地址:https://www.cnblogs.com/jsersudo/p/13839750.html
Copyright © 2011-2022 走看看