算握手的应答值
本节的 WebSocket 小工具: accept_key(key) 握手:base64(sha1(key + 魔法串))——服务端要回的 Sec-WebSocket-Accept encode_text(text, mask=None
一个文本帧收发
本节的 WebSocket 小工具: accept_key(key) 握手:base64(sha1(key + 魔法串))——服务端要回的 Sec-WebSocket-Accept encode_text(text, mask=None
补全:算握手应答值
本节的 WebSocket 小工具: accept_key(key) 握手:base64(sha1(key + 魔法串))——服务端要回的 Sec-WebSocket-Accept encode_text(text, mask=None
补全:编一个服务端文本帧
本节的 WebSocket 小工具: accept_key(key) 握手:base64(sha1(key + 魔法串))——服务端要回的 Sec-WebSocket-Accept encode_text(text, mask=None
补全:解一个带掩码的客户端帧
本节的 WebSocket 小工具: accept_key(key) 握手:base64(sha1(key + 魔法串))——服务端要回的 Sec-WebSocket-Accept encode_text(text, mask=None
补全:轮询 vs 推送省多少
不用 WebSocket,客户端每 5 秒轮询一次问「有没有新消息」;用 WebSocket,服务端有消息才推。补全 counts(seconds, interval, events):交回 (轮询发的请求数, 推送发的消息数)。一分钟、每
测 socket 程序难在哪
测 socket 程序比测一个普通函数难,主要因为【0】。
怎么让测试可靠
让 socket 测试每次结果都一样,好办法是【0】。
先跑一遍测试
测试用 run(*cases):静默跑 unittest,交回 (跑, 挂, 错) 三个数。 本节的切包小工具: frame(msg) 4 字节大端长度前缀 + 内容 Reader.feed(chunk) / Reader.m
测出粘包 bug
测试用 run(*cases):静默跑 unittest,交回 (跑, 挂, 错) 三个数。 本节的切包小工具: frame(msg) 4 字节大端长度前缀 + 内容 Reader.feed(chunk) / Reader.m