我正在尝试按照 RFC 6455 规范在 python 中实现我自己的 Websocket 服务器,并且我遇到了从基本帧头中提取位的问题
我对协议没有问题 我对基本的二进制/十六进制数学魔法有问题
根据规范,前 4 位是单个位值
所以为了获得第一点,我做了这样的事情(d是我来自websocket的数据)
first_byte = ord(d[0])
print "finished bit",(first_byte >> 7) & 1
稍后,如果我想获得有效载荷大小,我会这样做
sec_byte = ord(d[1])
print "payload size",sec_byte & 0x7f
然而,在规范的后面,我需要为操作码获取一个 4 位值,这就是我需要帮助的,甚至可能是一个指向这个数学如何工作的链接,我用谷歌搜索/duckduckgoed 我的大脑大部分结果来自stackoverflow
更多的修补和它开始到位我已经被困在这个问题上大约 4 天了,但仍然没有解决任何人都可以提供的信息。