Websocket客户端在握手后立即发送[FIN,ACK]

时间:2016-04-04 08:56:24

标签: qt websocket

我的项目使用WebSocket协议进行通信。服务器端在C中实现,对于客户端,我使用Qt 4.8.1构建一个简单的浏览器来运行HTML和JavaScript代码。

我对Qt框架有一个问题。握手后,客户端大小立即向服务器发送[FIN,ACK]以通知结束会话为in this picture

我不知道这个问题的原因。我认为这是Qt框架的一个错误,因为当我在Firefox浏览器中运行客户端时,它不会发生。 有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

Firefox版本使用websocket RFC6455协议标准(协议版本13),QT 4.8.1使用websocket hybi-00协议标准(无协议版本) https://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00

也许您的服务器正确实施了RFC6455协议标准,但错误地使用了hybi-00协议标准。请通过记录您的请求和响应内容(/ key3 /和质询数据)进行调试。如果服务器生成的质询数据与客户端(QT)中的质询数据不匹配,客户端将立即发送[FIN,ACK]以关闭套接字。