作家
登录

WebSocket实现原理

作者: 来源: 2017-07-11 16:29:23 阅读 我要评论

_WS_OUT uint64_t *out_size) { 
  •  
  •   
  •  
  • struct timeval tv; 
  •  
  • char mask[4]; 
  •  
  • unsigned int mask_int; 
  •  
  • unsigned int payload_len_bits; 
  •  
  • unsigned int payload_bit_offset = 6; 
  •  
  • unsigned int extend_payload_len_bits, i; 
  •  
  • unsigned long long frame_size; 
  •  
  •   
  •  
  • const int MASK_BIT_LEN = 4; 
  •  
  •   
  •  
  • gettimeofday(&tv, NULL); 
  •  
  • srand(tv.tv_usec * tv.tv_sec); 
  •  
  • mask_int = rand(); 
  •  
  • memcpy(mask, &mask_int, 4); 
  •  
  •   
  •  
  • /** 
  •  
  • * payload_len bits 
  •  
  • * ref to https://tools.ietf.org/html/rfc6455#section-5.2 
  •  
  • * If 0-125, that is the payload length 
  •  
  •  
  • * If payload length is equals 126, the following 2 bytes interpreted as a 
  •  
  • * 16-bit unsigned integer are the payload length 
  •  
  •  
  • * If 127, the following 8 bytes interpreted as a 64-bit unsigned integer (the 
  •  
  • * most significant bit MUST be 0) are the payload length. 
  •  
  • */ 
  •  
  • if (payload_size 125) { 
  •  
  • // consts of ((fin + rsv1/2/3 + opcode) + payload-len bits + mask bit len + payload len) 
  •  
  • extend_payload_len_bits = 0; 
  •  
  • frame_size = 1 + 1 + MASK_BIT_LEN + payload_size; 
  •  
  •   
  •  
  • payload_len_bits = payload_size; 
  •  
  • else if (payload_size > 125 && payload_size 0xffff) { 

  •   推荐阅读

      Linux_基于Docker搭建Redis集群

    应用redis-6379为主机,其余两台为大年夜机应用 docker exec -ti 容器ID /bin/bash 分别进入三个Redis容器进入容器后,应用 redis-cli 敕令,连接redis办事端连接办过后,应用 info replication 查看当前机械的角色未>>>详细阅读


    本文标题:WebSocket实现原理

    地址:http://www.17bianji.com/lsqh/36156.html

  • 关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)