算握手的应答值

本节的 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

开始练习 →