【发布时间】:2012-08-14 15:06:29
【问题描述】:
我在端口 1024 上创建了一个 QTcpServer。我想使用 URL ws://localhost:1024 从 websocket 连接到它,但它没有连接。我们不能将 websocket 连接到常规的 TCP 服务器套接字吗?
【问题讨论】:
-
你可以使用 websockify 来包装你的普通旧 TCP 服务器
标签: qt websocket qtcpserver
我在端口 1024 上创建了一个 QTcpServer。我想使用 URL ws://localhost:1024 从 websocket 连接到它,但它没有连接。我们不能将 websocket 连接到常规的 TCP 服务器套接字吗?
【问题讨论】:
标签: qt websocket qtcpserver
正如 Ihor 所指出的,WebSocket 以 HTTP 请求开始,然后升级为 WebSocket。你可以看看QtWebSockets。它是 Qt Playground 的一部分,可用于客户端和服务器实现。
【讨论】:
信息有点不真实。它们不是“建立在”HTTP 之上的,WebSocket 更接近 TCP 层。但是,它们需要通过 HTTP 请求与升级服务器握手。
链接到 RFC - https://www.rfc-editor.org/rfc/rfc6455#section-1.7
【讨论】:
Websocket 不是 纯 TCP 套接字。在后台,他们使用了基于顶级 HTTP 的自定义协议。所以分层看起来像这样:IP > TCP > HTTP > WebSocket.
因此,要在 Qt 中提供 websocket 服务器,您需要实现 websocket 协议。查看 QtWebsocket 以了解该实现。
【讨论】: