博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
websocket --工作原理
阅读量:5154 次
发布时间:2019-06-13

本文共 698 字,大约阅读时间需要 2 分钟。

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.服务器发送数据给客户端时,也需要封包.

转载于:https://www.cnblogs.com/52forjie/p/8533093.html

你可能感兴趣的文章
Excel操作 Microsoft.Office.Interop.Excel.dll的使用
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>
【bzoj2788】Festival
查看>>
执行gem install dryrun错误
查看>>
Java SE之正则表达式一:概述
查看>>
HTML5简单入门系列(四)
查看>>
实现字符串反转
查看>>
转载:《TypeScript 中文入门教程》 5、命名空间和模块
查看>>
苹果开发中常用英语单词
查看>>
[USACO 1.4.3]等差数列
查看>>
Shader Overview
查看>>
Reveal 配置与使用
查看>>
Java中反射的学习与理解(一)
查看>>
C语言初学 俩数相除问题
查看>>
B/S和C/S架构的区别
查看>>
[Java] Java record
查看>>
jQuery - 控制元素显示、隐藏、切换、滑动的方法
查看>>
postgresql学习文档
查看>>
Struts2返回JSON数据的具体应用范例
查看>>
js深度克隆对象、数组
查看>>