ReqClient.Channel.MintWs.Util (req_client v0.1.17)

Copy Markdown View Source

Ws utils

Summary

Functions

Mask(1 bit)是否对负载数据进行掩码处理? 1:是,数据是经过掩码的(客户端 → 服务器 必须为 1) 0:否,数据未掩码(服务器 → 客户端 必须为 0) ⚠️ 重点:WebSocket 协议规定,客户端发给服务器的帧,必须使用掩码(Mask = 1),而服务器发给客户端的帧则不能使用掩码(Mask = 0)。安全! Mask(掩码)就是一个 4 字节的随机数 客户端在发送数据给服务器时,会用这个 Mask 对 Payload data 的每一个字节进行异或(XOR)运算,从而“打乱”原始数据

Functions

decode!(data, ws \\ %Mint.WebSocket{})

decode_prety!(data, ws \\ %Mint.WebSocket{})

encode!(frame \\ :ping, ws \\ %Mint.WebSocket{})

Encode frame

get_client_key()

headers2upgrade(scheme \\ :http1, extensions \\ [])

headers2upgrade_resp(client_key \\ get_client_key())

mask_key()

Mask(1 bit)是否对负载数据进行掩码处理? 1:是,数据是经过掩码的(客户端 → 服务器 必须为 1) 0:否,数据未掩码(服务器 → 客户端 必须为 0) ⚠️ 重点:WebSocket 协议规定,客户端发给服务器的帧,必须使用掩码(Mask = 1),而服务器发给客户端的帧则不能使用掩码(Mask = 0)。安全! Mask(掩码)就是一个 4 字节的随机数 客户端在发送数据给服务器时,会用这个 Mask 对 Payload data 的每一个字节进行异或(XOR)运算,从而“打乱”原始数据

tcode()