有效载荷大小大于125字节



我使用这个函数来解码通过html5 websockets发送的包但是当有效载荷超过125字节时,它就会崩溃。有可能把它做大一点吗?


def decode_data(data):
  databyte = bytearray(data)
  datalen = (0x7F & databyte[1])
  str_data = ''
  if(datalen > 0):
    mask_key = databyte[2:6]
    masked_data = databyte[6:(6+datalen)]
    unmasked_data = [masked_data[i] ^ mask_key[i%4] for i in range(len(masked_data))]
    str_data = str(bytearray(unmasked_data))
  return str_data

这不是加长的问题。根据RFC 6455:

  • 0 ~ 125为有效载荷长度。
  • 如果为126,则后面的2个字节被解释为16位无符号整数,即为有效载荷长度。
  • 如果是127,下面的8个字节被解释为64位无符号整数(最高位必须为0)是有效载荷长度。

长度必须被切片成单独的字节,这意味着您需要向右进行位移(有8位的量),然后通过和1111 1111(即255)只保留最后8位。

这个答案非常详细地讨论了这个原则

相关内容

  • 没有找到相关文章

最新更新