• websocket --工作原理


    1,简历socket连接,启动服务端
    2,客户端在html里面写数据建立连接
    <script type="text/javascript">
    var socket = new WebSocket("ws://127.0.0.1:8002/xxoo");
    ...
    </script>

    3,双方建立握手
    服务端拿到,客户端传过来的数据
    拿到头部传过来的Sec-WebSocket-Key
    拿magic_string和Sec-WebSocket-Key 进行hmac1加密,再进行base64加密
    把加密结果返回给客户端

    4,如果他加密的结果返回给客户端
    如果和客户端一样,则继续连接,
    如果不一样,则客户端断开与服务器的连接

    5,客户端和服务端传输数据时,需要进行封包和解包的过程,客户端的javascript已经封装封包和解包的过程,
    但是socket服务端需要手动实现.

    6,解包的过程分为3步: PS:payload像是一个标识,告诉程序到我这里就执行完毕,后面就是其他东西,例如masking key
    和数据的内容
    1,如果payload length的长度小于125,后面的数据
    2,如果payload length长度等于126,则后面16位就是masking key,在masking key后面就是数据
    3,如果payload length长度等于127,则后面的64位,就是masking key,在masking key后面就是数据

    7.服务器发送数据给客户端时,也需要封包.

  • 相关阅读:
    web程序入门六(缓存)
    web程序入门五(http无状态)
    web程序入门四(webform常用成员)
    web程序入门三(分页)
    web程序入门二(webforms web窗体 aspx)
    CodeForce 710E
    CodeForce 710C Magic Odd Square
    CodeForce 710B Optimal Point on a Line
    CodeForce 710A King Moves
    HDU 4003
  • 原文地址:https://www.cnblogs.com/52forjie/p/8533093.html
Copyright © 2020-2023  润新知