屏蔽时WebSocket帧长度会发生变化

时间:2015-09-01 19:56:09

标签: c++ node.js websocket

我正在编写一个通过websocket协议进行通信的简单程序。它需要能够屏蔽和取消屏蔽消息。当我收到一条消息(握手和东西之后)时,我只需将它放在一个结构中:

struct WSFrame
{
    unsigned char frame_fin : 1;
    unsigned char frame_rsv1 : 1;
    unsigned char frame_rsv2 : 1;
    unsigned char frame_rsv3 : 1;
    unsigned char frame_opcode : 4;
    unsigned char frame_masked : 1;
    unsigned char frame_payload_length : 7;
}

变量fin,rsv123,opcode和masked自动更正。 现在我将长度转换为int(当然,当长度更长时,我根据RFC转换为短或长):

int payloadLength = this->frame_payload_length << 1;

除了屏蔽消息时,此方法正常。有时变量&#34;蒙面&#34;仍为0,长度始终不在0-127之间(在某处得到3000+)。我是否需要以不同方式获取屏蔽消息的长度?作为参考,服务器使用NodeJS编写,客户端是C ++。客户端上出现此问题,我自己写的。

0 个答案:

没有答案